1.所有引用类型(数组、对象、函数),都具有对象特性,及可自由扩展属性
2.所有的引用类型都有一个__proto__属性,属性值是一个普通对象 (原型的原型|原型链)
3.所有的函数都有一个prototype属性,属性值是一个普通对象
4.所有的引用类型的__proto__指向它构造函数的prototype属性值
5.当试图获取一个对象的某个属性时,如果这个对象本身没有这个属性,那么他会去它的__proto__(即它构造函数的prototype)去找
let 声明的变量只在 let
1.命令所在的代码块内有效。
2.不能重复定义
3.let 不存在变量提升,var 会变量提升:
4.不影响作用域链
const 声明一个只读的常量,一旦声明,常量的值就不能改变
const 声明一个只读变量(常量),声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。
1.声明必须赋初始值
2.标识符一般为大写
3.命令所在的代码块内有效。
4.不能重复定义
5.值不予许被修改
解构赋值是对赋值运算符的扩展。他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法。
includes():返回布尔值,判断是否找到参数字符串。(重点)
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
相同点:返回布尔值 查询到返回true, 没查找到返回false
以上三个方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引(从0开始)。
repeat(number):返回新的字符串,表示将字符串重复指定次数返回。
1.如果参数是小数,向下取整
2.如果参数是 0 至 -1 之间的小数,会进行取整运算,0 至 -1 之间的小数取整得到 -0 ,等同于 repeat 零次
3.如果参数是 NaN,等同于 repeat 零次
4.如果参数是负数或者 Infinity ,会报错:
5.如果传入的参数是字符串,零次
padStart(总长度,"填充的字符串"):返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
padEnd(总长度,"填充的字符串"):返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
以上两个方法接受两个参数,第一个参数是指定生成的字符串的最小长度,
第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。