JavaScript以及ES6中一些被自己忽略的点

  • 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值