- NaN === NaN; //false
- isNaN(NaN); //true
- ‘use strict’; //启用严格模式,未声明变量报错
- \u#### 表示一个Unicode字符
- 反引号:多行字符串,字符串模版 字符串是不可变的 Array超索引赋值,会改变Array大小 Array.slice()可以赋值数组
- Array push() pop() 空数组不报错 Array unshift()插头 shift()删头 空数组不报错
- Array.sort() 原地排序 reverse()原地反转 concat()返回一个新数组 arr.concat(1, 2, [3, 4]);
- join()把数组每个元素用指定字符串连接 对象
- 如果属性名包含特殊字符,就必须用’'括起来。访问这个属性也无法使用.操作符,必须用[‘xxx’]来访问
- 实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。
- 如果我们要检测对象是否拥有某一属性,可以用in操作符,包括继承的属性
- xiaoming.hasOwnProperty(‘name’);//自身拥有,非继承属性
- JavaScript把null、undefined、0、NaN和空字符串’'视为false,其他值一概视为true 请注意,for…in对Array的循环得到的是String而不是Number。
- ES6增加了Map和Set对象
- 为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。具有iterable类型的集合可以通过新的for…of循环来遍历。 更好的方式是直接使用iterable内置的forEach方法: arr.forEach(function
(element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身 }); - JavaScript还有一个免费赠送的关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array
- rest参数:function foo(a, b, …rest); rest至少是一个空数组,不会为undefined
- 变量提升 JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部
- 全局作用域 全局对象window 全局作用域的变量实际上被绑定到window的一个属性
- var函数作用域 let块级作用域
- ES6 const常量 具有块级作用域
- ES6 解构赋值 可嵌套 可忽略元素 var [x, y, z] = [‘hello’, ‘JavaScript’, ‘ES6’];
- let [, , z] = [‘hello’, ‘JavaScript’, ‘ES6’]; 对象中取出若干属性 var {name, age, passport} = person; 可使用默认值 var {name, single=true} = person;
JavaScript以及ES6中一些被自己忽略的点
最新推荐文章于 2024-09-25 14:00:00 发布