ECMA在后续规范中推出了strict模式
'use strict';abc = 'Hello, world';//abc没有通过var声明,支持strict的浏览器会报错 Uncaught ReferenceError: abc is not definedconsole.log(abc);
ES6新增了一种多行字符串的表示方法``。代替\n
console.log(`多行字符串测试`);
ES6新增了模板字符串:
'use strict';var name = "小明";var age = "15";var message = `我是${name},我今年${age}岁了`;//用`包起来console.log(message);//我是小明,我今年15岁了
字符串是不可改变的
var s = 'Test';s[0] = 'X';console.log(s); // s仍然为'Test'
数组
//如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化 var arr = [1, 2, 3];arr[5] = 'x';arr; // arr变为[1, 2, 3, undefined, undefined, 'x']
slice:
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G'] arr.slice();//不传参数,则返回整个数组
push:向末尾添加若干元素;和pop删掉最后一个元素
var arr = [1, 2];arr.push('A', 'B'); // 返回Array新的长度: 4arr; // [1, 2, 'A', 'B']arr.pop(); // pop()返回'B'arr; // [1, 2, 'A']arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次arr; // []arr.pop(); // 空数组继续pop不会报错,而是返回undefinedarr; // []
unshift和shift 对应操作头部
判断一个属性 是否是某一对象拥有的用in;自身拥有不是继承来的用hasOwnProperty()
'use strict'; var xiaoming = { name: '小明' }; console.log('age' in xiaoming);//false console.log('toString' in xiaoming);//true console.log(xiaoming.hasOwnProperty('name')); // true console.log(xiaoming.hasOwnProperty('toString')); // false