接上篇再学个比较有用的 Symbol.isConcatSpreadable
这个符号作为一个属性表示“一个布尔值,如果是 true,则意味着对象应
该用 Array.prototype.concat()打平其数组元素”。ES6 中的 Array.prototype.concat()方法会
根 据 接 收 到 的 对 象 类 型 选 择 如 何 将 一 个 类 数 组 对 象 拼 接 成 数 组 实 例 。 覆 盖 Symbol.isConcat-
Spreadable 的值可以修改这个行为。
let initial = ['foo'];
let array = ['bar'];
console.log(array[Symbol.isConcatSpreadable]); // undefined
console.log(initial.concat(array)); // ['foo', 'bar']
array[Symbol.isConcatSpreadable] = false;
console.log(initial.concat(array)); // ['foo', Array(1)]
let arrayLikeObject = { length: 1, 0: 'baz' };
console.log(arrayLikeObject[Symbol.isConcatSpreadable]); // undefined
console.log(initial.concat(arrayLikeObject)); // ['foo', {...}]
arrayLikeObject[Symbol.isConcatSpreadable] = true;
console.log(initial.concat(arrayLikeObject)); // ['foo', 'baz']
let otherObject = new Set().add('qux');
console.log(otherObject[Symbol.isConcatSpreadable]); // undefined
console.log(initial.concat(otherObject)); // ['foo', Set(1)]
otherObject[Symbol.isConcatSpreadable] = true;
console.log(initial.concat(otherObject)); // ['foo']
在实际开发过程中我们通常使用解构后 再 concat
console.log(initial.concat(...otherObject.values())); // ['foo', 'qux']
Object 类型
创建一个对象
var o = new Object();
var b = new Object; //合法,但不推荐
每个 Object 实例都有如下属性和方法。
- constructor:用于创建当前对象的函数。在前面的例子中,这个属性的值就是 Object()
函数。 - hasOwnProperty(propertyName):用于判断当前对象实例(不是原型)上是否存在给定的属
性。要检查的属性名必须是字符串(如 o.hasOwnProperty(“name”))或符号。 - isPrototypeOf(object):用于判断当前对象是否为另一个对象的原型
- propertyIsEnumerable(propertyName):用于判断给定的属性是否可以使用for-in 语句枚举。与
- hasOwnProperty()一样,属性名必须是字符串。
- toLocaleString():返回对象的字符串表示,该字符串反映对象所在的本地化执行环境。
- toString():返回对象的字符串表示。
- valueOf():返回对象对应的字符串、数值或布尔值表示。通常与 toString()的返回值相同。
var o = {"name":"zhangsan"}
o.toLocaleString() //'[object Object]'
o.toString() //'[object Object]'
o.valueOf() //{name: 'zhangsan'}
操作符
一元操作符
只操作一个值的操作符叫一元操作符(unary operator)。一元操作符是 ECMAScript 中最简单的操作符。
var age = 29;
var t = age++;
console.log(t,age) //29 30
var age = 29;
var t = ++age;
console.log(t,age) //30 30
一元加和减
var age = 29;
var t = +age //29
t += age //58
下节再学 位操作符文章来源:https://www.toymoban.com/news/detail-627984.html
最近刀郎出了新专辑《山歌寥哉》不错~文章来源地址https://www.toymoban.com/news/detail-627984.html
到了这里,关于《每天十分钟》-红宝书第4版-语言基础-数据类型(五)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!