请教1-1/(2-1/(...99-1/100))这类问题怎么解?

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

}

Kubernetes 能够很好地组织和编排容器,但它缺少一个更高层次的应用打包工具,而 Helm 就是来干这件事的。
举个例子,我们需要部署一个MySQL服务,Kubernetes则需要部署以下对象:
① 为了能够让外界访问到MySQL,需要部署一个mysql的service;
②需要进行定义MySQL的密码,则需要部署一个Secret;
③Mysql的运行需要持久化的数据存储,此时还需要部署PVC;
④保证后端mysql的运行,还需要部署一个Deployment,以支持以上的对象。
针对以上对象,我们可以使用YAML文件进行定义并部署,但是仅仅对于单个的服务支持,如果应用需要由一个甚至几十个这样的服务组成,并且还需要考虑各种服务的依赖问题,可想而知,这样的组织管理应用的方式就显得繁琐。为此就诞生了一个工具Helm,就是为了解决Kubernetes这种应用部署繁重的现象。

  • Chart:一个helm程序包,是创建一个应用的信息集合,包含各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。可以将Chart比喻为yum中的软件安装包;
  • Config:应用程序实例化安装运行时所需要的配置信息;
  • Release:特定的Chart部署于目标集群上的一个实例,代表这一个正在运行的应用。当chart被安装到Kubernetes集群,就会生成一个release,chart可以多次安装到同一个集群,每次安装都是一个release。
  • helm:客户端,GO语言编写,实现管理本地的Chart仓库,可管理Chart,与Tiller服务进行交互,用于发送Chart,实例安装、查询、卸载等操作。
  • Tiller:服务端,通常运行在K8S集群之上。用于接收helm发来的Charts和Conifg,合并生成release,完成部署。

Helm的部署方式有两种:预编译的二进制程序和源码编译安装,这里使用二进制的方式进行安装


  

  

与 yum 一样,helm 也支持关键字搜索:


  

  
  • Helm是Kubernetes的包管理器,Helm 让我们能够像 yum 管理 rpm 包那样安装、部署、升级和删除容器化应用。
  • chart 是 Helm 的应用打包格式,它由一组文件和目录构成。其中最重要的是模板,模板中定义了 Kubernetes 各类资源的配置信息,Helm 在部署时通过 values.yaml 实例化模板。
  • Helm 允许用户开发自己的 chart,并为用户提供了调试工具。用户可以搭建自己的 chart 仓库,在团队中共享 chart。
}

1.控制浏览器弹出一个警告框

2.让计算机在页面中输出一个内容在 document中写一个内容 (write写)

3.向控制台输出一个内容


1.可以将js代码编写到外部js文件中,然后通过script标签引入
写到外部文件中可以在不同的页面中同时引用,也可以利用到浏览器的缓存机制
2.script标签一旦用于引入外部文 件了,内部就不能再编写代码了,即使编写了
如果需要可以在创建一个新的script标签用于编写内部代码

可以将js代码编写到script标签

3.可以将js代码编写到标签的onclick属性中
当我们点击按钮时,js代码才会执行
虽然可以写在标签的属性中,但是他们属于结构与行为耦合,不方便维护

可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码


多行注释,注释中的内容不会被执行,但是可以在源代码中查看
要养成良好的编写注释的习惯,也可以通过注释来对代码进行一些简单的调试
3.JS中严格区分大小写
4.JS中每一条语句以分号(;)结尾
-如果不写分号,浏览器会自动添加,但是会消耗一些系统资源

 而且有点时候浏览器会加错分号

5.JS中会忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化


1.字面量都是一些不可改变的值

字面量都是可以的直接使用,但是我们一般都不会直接使用字面量

变量 变量可以用来保存字面量,而且我们一般都不会直接使用字面量

 变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量
 可以通过变量对字面量进行描述
 



2.把声明变量和对该变量赋值一次完成:


3.变量名允许包含字母、数字、美元符号和下划线(但第一个字符不允许是数字)。为了让比较长的变量名更容易阅读,可以在变量名中的适当位置插入下划线,就像这面这样:


-在js中所有的可以由我们自主命名的都可以称为标识符
-例如:变量名,函数名,属性名都属于标识符
-命名一个标识符时需要遵守如下的规则:

 1.标识符中可以含有字母、数字、_、$
 2.标识符不能以数字开头
 3.标识符不能是ES中的关键字或保留字
 4.标识符一般都采用驼峰命名法 
 通常驼峰法格式是函数名、方法名和对象属性名命名的首选格式
 -首字母小写,每个单词的开头字母大写,其余字母小写
 
--注意:js底层保存标识符是实际上是采用的Unicode编码,
 所以理论上讲,所有的utf-8中含有的内容都可以作为标识符 
a标识符 自己起的名字
 
可以含有字母、数字、_、$ 
标识符不能是ES中的关键字或保留字



1.数据类型指的就是字面量的类型

在js中一共有六中数据类型
 





 1.-字符串由零个或多个字符构成,字符包括(但不限制)字母、数字、标点符号和空号
 -在js中字串符需要使用引号引起来
 -使用双引号或单引号都可以,但是不要混着用
 -引号不能嵌套,双引号不能放双引号,单引号不能放单引号,
 单引号里面可以放双引号,双引号里面可以放单引号
2.在字符串中我们可以使用\作为转义字符,
 当表示一些特殊符号时可以使用\进行转义
 \t 表示制表符(空格)
 
 
 //输出字面量 字符串str 
 
 
3.如果想在上面这条语句中使用单引号,就必须保证字母“n”和“t”之间的单引号能别当成这个字符串的一部分,这种情况下这个单引号需要被看做一个普通字符,而不是这个字符串的结束标志,这种情况我们需要对这个字符进行转义,在js里用反斜线对字符串进行转义:
 
 
 
4.类似地,如果想用双引号来包住一个本身就包含双引号的字符串,就必须用反斜线对字符串中的双引号进行转义:
 
 


 
包括整数和浮点数(小数) * 可以使用一个运算符typeof * 来检查一个变量的类型 * 检查数值时,会返回number * 检查字符串时,会返回string

 

1.在js中所有的数值都是Number类型
如果想给一个变量赋一个数值,不用限定它必须是一个整数,js允许使用带点小数点的数值,并且允许任意位小数,这样的数称为浮点数
也可以使用负值,在有关数值的前面加上一个减号(-)表示它是一个负数:

2.js中可以表示的数字的最大值 (最大值:1.)

3.如果使用Number表示的数字超过了最大值,则会返回一个Infinity

// 在js中整数的运算基本可以保证精确 //如果使用js进行浮点运算,可能得到一个不精确的结果 //所以千万不要使用js进行对精确度要求比较高的运算

布尔值只有俩个,主要用来做逻辑判断
使用typeof检查一个布尔值时,会返回boolean


 null这个值专门用来表示一个为空的对象
 
 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
 
 
 

十、强制类型转换-string

 - 指将一个数据类型强制转换为其他的数据类型 
 - 类型转换主要指,将其他的数据类型,转换为 
 
 
  1. 将其他类型转换为String

    - 该方法不会影响到原变量,它会将转换的结果返回
如果调用他们的方法会报错
 -调用 String()函数,并将转换的数据作为参数传递给函数
 -使用String()函数做强制类型转换时
 它会将(字面量)null直接转换为(字符串)"null"
 
 //调用tostring()函数,来将a转换为字符串 (转谁就把谁写在括号里面)

十一、强制类型转换-Number

1.将其他的数据转换为Number

-字符串-->(转换)数字 1.如果是纯数字的字符串,则直接将其转换为数字 2.如果字符串中有非数字的内容,则转换为NaN 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
 -这种方式专门用来对付字符串
 -parseInt()把一个字符串转换为一个整数
 
 parseInt()可以将一个字符串中的有效的整数内容取出来,(px不是数字所以不读,就只剩下数字)
 (如果第一个是英文字母 转换的就是NaN(包括点.也在内 .以后的东西也不读))
 它会现将其转换为String然后再操作

1.在js当中,如果需要表示16进制的数字,则需要以0x开头

 如果需要表示8进制的数字,则需要以0开头
 如果需要表示2进制的数字,则需要以0b开头,但是不是所有的浏览器都支持
 
 
 

将其数据类型转换为boolean

除了0和NaN,其余的都是true 除了空串,其余的都是true -对象也会转换为true
通过运算符可以对一个或多个值进行运算,并获取运算结果
比如:tupeof就是运算符,可以来获得一个值得类型
 它会将该值的类型以字符串的形式返回
 


当对非Number类型的值进行运算时,会将这些值转换为Number然后在运算
 任何值和NaN做运算都得NaN
 +可以对两个值进行加法运算,并将结果返回
 如果对俩个字符串进行加法运算,则会做拼串
 会将俩个字符串拼接为一个字符串,并返回
 任何的值和字符串做加法运算,都会先转换为字符串,然后在和字符串做拼串的操作转成字符串
 可以对两个值进行减法运算,并将结果返回
 
result = "锄禾日当午" //如果想把诗写的工整就这样写 也可以这样写"锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦" //任何值和字符串相加都会转换为字符串,并做拼串操作 我们可以利用这一点,来将一个任意的数据类型转换为string 我们只需要为任意的数据类型加一个""即可将其转换为string 这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用string()函数 任何值做- * / 运算时都会自动转换为Number 我们可以利用这一特点做隐式的类型转换

 一元运算符,只需要一个操作数
 -正号不会对数字产生任何影响 
 -负号可以对数字进行负号的取反
 —对于非number类型的值
 它会将先转换为number,然后再运算
 可以对一个其他的数据类型使用+,来将其转换为number
 它的原理和number()函数一样
 
 

 —通过自增可以使变量在自身的基础上增加1
 —对于一个变量自增以后,原变量的值会立即自增1
 —自增分为俩种:后++(a++),前++(++a)
 无论是a++ 还是++a,都会立即使原变量的值自增1
 不同的是a++ 和 ++a的值不同 
 a++的值等于原变量的值 (自增前的值)
 ++a的值等于新值 (自增后的值)
—通过自减可以使变量在自身的基础上减1
 无论是a--还是--a都会使原变量的值自减1 
 不同的是a-- 和 --a的值不同 
 a--的值等于原变量的值 (自增前的值)
 --a的值等于新值 (自增后的值) 
 
 //第一次c++ 是在10的基础上自增
 //第二次c++ 是在11的基础上自增


JS中为我们提供了三种逻辑运算法

— !可以用来对一个值进行非运算 — 所谓非运算就是值对一个布尔值进行取反操作 — 如果对一个值进行俩次取反,它不会变化 — 如果对非布尔值进行元素,则会将其转换为布尔值,然后在取反 所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值 可以为一个任意数据类型去俩次反,来将其转换为布尔值 — &&可以对符号俩侧的值进行与运算并返回结果 — 俩个值中只要有一个值是flase就返回flase 只有俩个值都是true时,才会返回true — js中的“与”属于短路的与 如果第一个值为flase,则不会看第二个值 — ||可以对符号俩侧的值进行或运算并返回结果 — 俩个值中只有一个true,就返回true 如果俩个值都是flase,才返回flase —js中的“或”属于短路的或 如果对一个值为true,则不会检查第二个值 //第一个值为true,会检查第二个值 //第一个值为false,不会检查第二个值 //第一个值为false,则会检查第二个值 //第一个值为true,则不会检查第二个值

十九、非布尔值的非与或运算

— 对于非布尔值进行与或运算时 会向将其转换为布尔值,然后在运算,并且返回原值 — 如果第一个值为true,则必然返回第二个值 — 如果第一个值为false,则直接返回第一个值 — 如果第一个值为true,则直接返回第一个值 — 如果第一个值为false,则返回第二个值 // 与运算:如果俩个值都为true,则返回后边的值 //与运算:如果俩个值中有false,则返回靠前的false //如果第一个值为true,则直接返回第一个值 //如果第一个值为false,则直接返回第二个值

可以将符号右侧的值赋值给符号左侧的变量


通过关系运算符可以比较俩个值之间的大小关系

 如果关系成立它会返回true,如果关系不成立则返回false 
 — 判断符号左侧的值是否大于右侧
 — 如果关系成立,返回 true,如果关系成立则返回 false
 — 判断符号左侧的值是否大于或等于右侧的值
 — 判断符号左侧的值是否小于右侧
 — 如果关系成立,返回 true,如果关系成立则返回 false
 — 判断符号左侧的值是否小于或等于右侧的值
—对于非数值进行比较时,会将其转换为数字然后在比较 
 如果符号俩侧的值都是字符串时,不会将其转换为数字进行比较
 而会分别比较字符串中字符的Unicode编码
 
 
 
 //任何值和NaN做任何比较都是false
 //如果比较的俩个字符串型的数字,可能会得到不可预期的结果
 //注意:在比较俩个字符串型的数字时,一定一定一定要转型
 //比较俩个字符串时,比较的是字符串的字符编码
 //比较字符编码时是一位一位的进行比较
 //如果俩位一样,则比较下一位,所以借用它来对英文进行排序 
 //比较中文时没有意义
 

 //使用十六进制计算器
 在字符串中使用转义字符输入Unicode编码表
 
 
 
 在网页中使用Unicode编码表
 &#编码;这里的编码需要的是10进制

相等运算符用来比较俩个值是否相等 如果相等会返回true,否则会返回false —当使用==来比较俩个值时,如果值的类型不同 则会自动进行类型转换,将其转换为相同的类型 不相等用来判断俩个值是否不相等,如果不相等返回true,否则返回false — 使用!=来做不相等运算 — 不相等也会对变量进行自动的类型转换,如果转换后相等也会返回false — 用来判断俩个值是否全等,它和相等类似,不同的是它不会做自动的类型转换 如果来个值得类型不同,直接返回false — 用来判断俩个值是否不全等,和不等类似,不同的是它不会做自动类型转换 如果来个值得类型不同,直接返回true 所以这俩个值做相等判断时,会返回true NaN不和任何值相等 包括他本身 //NaN不和任何值相等 所以下面的这个方法行不通 可以通过isNaN()函数来判断一个值是否是NaN 如果该值是NaN则返回true,否则会返回false
 条件运算符也叫三元运算符
 条件表达式?语句1:语句2;
 条件运算符在执行时,首先对条件表达式进行求值,
 如果该值为true,则执行语句1,并返回执行结果
 如果该值为false,则执行语句2,并返回执行结果 
 如果条件的表达式的求值结果是一个非布尔值,
 会将其转换为布尔值然后在运算 

二十五、运算符的优先级

使用,可以分割多个语句,一般可以在声明多个变量时使用 //使用,运算符同时声明多个变量 //可以声明多个变量并赋值 就和数学中一样,在js运算符也有优先级 在js中有一个运算符优先级的表 在表中越靠上优先级越高,优先级越高越优先计算 如果优先级一样,则从左往右计算 但是这个表我们不需要记忆,如果遇到优先级不清楚 如果||的优先级高,或者俩个一样高,则应该返回3 如果与的优先级高,则应该返回1
 我们的语句是由一条一条语句构成的
 语句是按照自上向下的顺序一条一条执行的 
 在js中可以使用{}来为语句进行分组 
 同在一个{}中的语句我们称为是一组语句
 它们要么执行,要么都不执行
 一个{}中的语句我们也称为代码块
 在代码块的后面不用在编写;了
 
 js中的代码块,只具有分组的作用,没有其他的用途
 代码块内部的内容,在外部是完全可见的
 
 

 
二十七、if语句(一) — js中的程序是从上到下一行一行执行的 — 通过流程控制语句可以控制程序执行流程 使流程可以根据一定的条件来选择执行 — 使用条件判断语句可以在执行某个语句之前进行判断 如果条件成立才会执行语句,条件不成立则语句不会执行 if语句在执行时,会先对条件表达式进行求值判断 如果条件表达式的值为true,则执行if后的语句 如果条件表达式的值为false,则不会执行if后的语句 if语句只能控制紧随其后的那个语句 如果希望if语句可以控制多条语句 可以将这些语句统一放到代码块中{} if语句后的代码块不是必须的,但是在开发中尽量写上代码块,即使if后只有一条语句

二十八、if语句(二)

当该语句执行时,会先对if后的条件表达式进行求值判断 如果该值为true,则执行if后的语句 如果该值为false,则执行else后的语句 当该语句执行时,会从上到下依次对条件表达式进行求值判断 如果该值为true,则执行当前语句 如果该值为false,则继续向下判断 如果所有的条件都不满足,则执行最后一个else后的语句

二十九、if练习(一)

 从键盘输入小明的期末成绩
 当成绩为100时,奖励一俩BMW
 当成绩为[60-80]时,奖励一本参考书
 其他时,什么奖励也没有
 
 prompt()可以弹出一个提示框,该提示框中会带有一个文本框
 用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数
 该字符串将会作为提示框的提示文字
 用户输入的内容将会作为函数的返回值返回,可以定义一个变量来接收该内容
 //根据score的值来决定小明什么奖励 
 



 
大家都知道,男大当婚女大当嫁,那么女方家长要嫁女儿,当然要提出一定的条件 如果三个条件同事满足,则'我一定要嫁给你' 如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余' 如果三个条件都不满足,则:'不嫁' //如果三个条件同事满足,则'我一定要嫁给你'(同时满足用于&&) //如果三个条件有为真的情况(有一个满足用或||),则:'嫁吧,比上不足,比下有余' alert("嫁吧,比上不足,比下有余");

三十一、if练习(三)

编写程序,由键盘输入三个整数分别存入变量num1,num2,num3
对他们进行排序,并且从小到大输出


 
 条件分支语句也叫switch语句
 在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较 
 如果比较结果为true,则从当前case处开始执行代码
 当前case后的所有代码都会被执行,我们可以在case的后面跟着一个break关键字
 这样可以确保只会执行当前case后的语句,而不会执行其他的case
 如果比较结果为false,则继续向下比较
 如果所有的比较结果都为false,则只执行default后的语句
 switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能 
 同样使用if也可以实现switch的功能,所以我们使用时,可以根据自己的习惯选择 
 
 
 //根据num的值,输出对应的中文
 // 这俩中方法差不多

三十二、条件分支语句练习(二)

 从键盘接收整数参数,如果该数为1-7,打印对应的星期,否则打印非法参数
 

 
三十二、条件分支语句练习(一)
对于成绩大于60分的,输出'合格'。低于60分的,输出'不合格'


三十三、while循环

向页面中输出连续的数字 通过循环语句可以反复的执行一段代码多次 while(条件表达式){ -while语句在执行时, 先对条件表达式进行求值判断 如果值为true,则执行循环体 循环体执行完毕后,继续对表达式进行判断 如果为true,则继续执行循环体,以此类推 如果值为flash,则终止循环 do...while语句在执行时,会先执行循环体 循环体执行完毕以后,在对while后的条件表达式进行判断 如果结果为true,则继续执行循环体,执行完毕继续判断以此类推 如果结果为false,则终止循环 实际上这俩个语句功能类似,不同的是while是先判断后执行 do...while可以保证循环体至少执行一次
//向这种将条件表达式写死为true的循环,叫做死循环
//该循环不会停止,除非浏览器关闭,死循环在开发中慎用
//可以使用break,来终止循环
//创建一个循环,往往需要三个步骤
// 1.创建一个初始化的变量
//2.在循环中设置一个条件表达式
 //3.定义一个更新表达式,每次更新初始化变量
} // 输出为换行的数字

三十四、while循环练习

假如投资的几年利率为5%,试求从1000块增长到5000块,需要花费多少年 //定义一个变量,表示当前的钱数 (代码解析) //定义一个while循环来计算每年的钱数

三十五、while练习(一) 使用if练习一

//score就是小明的期末成绩
//判断用户输入的值是否合法
 //满足该条件则证明用户的输入合法,退出循环
 


 //根据score的值来决定小明什么奖励 
 

 

for语句,也是一个循环语句,也称为for循环
 在for循环中,为我们提供了专门的位置用来放三个表达式:
 for(初始化表达式;条件表达式;更新表达式){
 
 for循环的执行流程:
 1.执行初始化表达式,初始化变量(初始化表达式只能则执行一次)
 2.执行条件表达式,判断是复执行循环
 3.如果为true,则执行循环
 如果为false,则终止循环
 4.执行更新表达式,更新表达式执行完毕继续重复执行
 
 //创建一个执行10次的while循环
 for循环中的三个部分都可以省略,也可以写在外部
 如果在for循环中不写任何表达式,只写俩个;
 此时循环是一个死循环会一直执行下去,慎用
 

 
三十七、for循环练习(一)
打印1-100之间所有奇数之和
//创建一个变量,用来保存奇数之和 //不能被2整除的数就是奇数(==是偶数 !=是奇数) //如果i除以2有余数则证明i是奇数

三十八、for循环练习(二)

打印1-100之间的所有7的倍数的个数及总和

//3.定义一个变量来保存组合
//5.定义一个计数器,来记录数量
 //2.判断i是否是7的倍数(输出7的倍数)

三十九、for循环练习(三)

水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身

//先打印所有的三位数

//获取i的百位 十位 个位的数字 //判断i是否是水仙花数

在页面中接收一个用户输入的数字,并判断该数是否是质数

质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须是大于1的自然数
 
 //判断这个值是否合法
 //创建一个变量来保存当前的数的状态
 //默认当前num是质数
 //判断num是否是质数
 //判断num是否能被i整除
 //如果num能被整除,则说明num一定不是质数
 //如果 num是质数则输出
 

四十一、嵌套的for循环

通过程序,在页面中输出如下的图形 //向body中输出一个内容 //通过一个for循环来输出图形 //这个for循环执行几次,图形的高度就是多少 //它可以用来控制图形的高度 //在循环的内部创建一个循环,用来控制图形的宽度 //目前我们的外部的for循环执行1次,内部的就会执行5次 //内层循环可以来决定图形的宽度,执行几次图从的宽度就是多少 //最终输出一个5*5的*矩形 //最终输出一个梯形的*

四十二、for循环练习(一)

 
 //创建外层循环,用来控制乘法表的高度
 //创建一个内层循环来控制图形的宽度
 加span用来使每列每行对齐

四十三、for循环练习(二)

打印出1-100之间所有的质数
1不是质数所以直接打印2-100的质数

 
 //创建一个布尔值,用来保存结果,默认i是质数
 //创建一个布尔值,用来保存结果,默认i是质数
 //获取到2-i之间的所有的数
 //判断i是否能被j整除
 //如果进去判断则证明i不是质数,修改flag值为false
 
 //如果是质数则打印i的值 

break关键字可以用来退出switch或循环语句
break关键字,会立即终止离他最近的那个循环语句

可以为循环语句创建一个lable,来标识当前的循环 lable语句:循环语句 使用break语句时,可以在break后跟着一个喇叭lable 这样break将会结束指定的循环,而不是最近的 //可以为循环语句创建一个lable(标签),来标识当前的循环 continue关键字可以用来跳过档次循环 同样continue也是默认只会对离他最近的循环起作用
//测试如下的程序的性能
//在程序执行前,开启计时器
//它需要一个字符串作为参数,这个字符串将会作为计时器的标识
//打印2-100之间所有的数
 //创建一个布尔值,用来保存结果,默认i是质数
 //获取到2-i之间的所有的数
 //判断i是否能被j整除
 //如果进去判断则证明i不是质数,修改flag值为false
 //一旦进入判断,则证明i不可能是质数了,此时循环在执行已经没有任何意义了
 //如果是质数则打印i的值 
 //console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数
 //可以通过Math.sqrt()对一个数进行开方 (可以进行优化)

- 以上五种类型属于基本数据类型,以后我们看到的值 只要不是上边的5种,全都是对象 值和值之间没有任何的联系 如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性 - 由ES标准中定义的对象,在任何的ES的实现中都可以使用 - 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象 - 由开发人员自己创建对象 使用new关键字调用函数(),是构造函数constructor(new后面的英文首字母大写) 构造函数是专门用来创建对象的函数 使用typeof检查一个对象时,会返回object 在对象中保存的值称为属性 对象.属性名=属性值; 如果读取对象中没有属性,不会报错而是会返回underfined 语法:对象.属性名 = 新值

四十七、属性名和属性值

- 对象的属性名不强制要求遵守标识符的规范 什么乱七八糟的名字都可以使用 - 但是我们使用还是尽量按照标识符的规范去做 如果要使用特殊的属性名,不能采用.的方式来操作 语法:对象["属性名"] = 属性值 读取时也需要采用这种方式 使用[]这种形式操作方法,更加灵活 在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性 js对象的属性值,可以是任意的数据类型 - 通过该运算符可以检查一个对象中是否含有指定的属性 如果有则返回true,没有则返回false

四十八、基本数据类型和引用数据类型

js中的变量都是保存到栈内存中的 基本数据类型的值直接在栈内存中储存 值与值之间是独立存在,修改一个变量不会影响其他的变量 对象是保存到堆内存中的,没创建一个新的对象,就会在堆内存中开辟出一个新的空间 而变量保存的是对象的内存地址(对象的引用),如果俩个变量保存的是同一个对象引用 当一个通过一个变量修改属性时,另一个也会受到影响 当比较俩个基本数据类型的值时,就是比较值 而比较俩个引用的数据类型,它是比较的是对象的内存地址 如果俩个对象是一模一样的,但是地址不同,它会返回false
}

我要回帖

更多关于 请教的问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信