字符串扩展:
字符串查找
let a = "hello world!";
a.startsWith("hello"); //true
a.endsWith("!"); //true
a.includes("w"); //true
//第二个参数表示搜索位置索引
a.startsWith("ello" , 1); //true
a.endsWith("hello" , 5); //true
a.includes("hello" , 5); //false
字符串重复
"abc".repeat(3); //"abcabcabc"
"abc".repeat(2.9); //"abcabc" 小数点后的数值会被取整忽略
"abc".repeat(0); //""
"abc".repeat(-3); //负数报错
子串的识别:
includes():返回布尔值,判断是否找到参数字符串。
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
数值的扩展:
前缀 0b 或者 0B 代表二进制
console.log( 0b1011 === 11 ) // true
前缀 0o 或者 0O 代表八进制
console.log( 0o555 === 365 ) // true
八进制,二进制,十二进制,六进制转成十进制 用Number()
console.log( Number(0b1011) ) // 11
console.log( Number(0o555) ) // 365
Number.isFinite() 判断数值是否是有限的,返回是布尔值。
Number.isNaN() 判断数值是否为NaN ,返回值是布尔值。
Number.parseInt() 将数值转化为整型,只去开头数字的整数部分,若开头是非数字的会返回NaN。
Number.parseFloat() 将数值转化为浮点型,在上一个方法中小数点以前方法一样,小数点之后遇到非数字截止则返回。
Number.isInteger() 判断数值是不是整数 返回值是布尔值Number.EPSILON 常量 代表 1 与大于 1 的最小浮点数之间的差。
对象的拓展:
拓展运算符(…)用于取出参数对象所有可遍历属性然后拷贝到当前对象。
let person = {name: "Amy", age: 15};
let someone = { ...person };
someone; //{name: "Amy", age: 15}
可用于合并两个对象
let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
person; //{age: 15, name: "Amy"}
属性的简洁表示:
ES6允许直接写入变量和函数作为对象的属性和方法。
ES6允许在对象中只写属性名,不写属性值。这时,属性值等于属性名所代表的变量。
属性名表达式:
Java定义对象的属性有两种方式:
1.直接用标识符作为属性名
2.用表达式作为属性名,放在方括号内
对象类别:
普通对象(Ordinary):具有JavaScript对象所有的默认内部行为。
特殊对象(Exotic):具有某些与默认行为不符的内部行为。
标准对象(Standard):ES6规范中定义的对象,例如Array、Date等,标准对象既可以是普通对象,也可以是特殊对象。
内建对象:脚本开始执行时存在于JavaScript执行环境中的对象,所有标准对象都是内建对象。
属性初始值的简写:
function person(name, age, job) {
return {
name: name,
age: age,
job: job
}
}
当一个对象的属性名和本地变量同名时,不必再写冒号:和值,简单地只写属性名即可。
function person(name, age, job) {
return {
name,
age,
job
}
}
对象方法简写:
var person = {
name: 'w3cplus',
sayName: function() {
console.log(this.name)
}
}
通过省略冒号:和function关键词,使对象中的语法变得更加简洁。所以上面的示例可以修改成。
var person = {
name: 'w3cplus',
sayName() {
console.log(this.name)
}
}