定义——一个不会重复的原始数据类型
Symbol
是ES6引入的一种新的原始数据类型,表示独一无二的值。它是JavaScript语言的第七种数据类型。
相关信息
前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
基本数据类型不适用以new关键字新增, 因此它的创建方式如下:
Symbol
是ES6引入的一种新的原始数据类型,表示独一无二的值。它是JavaScript语言的第七种数据类型。
相关信息
前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
基本数据类型不适用以new关键字新增, 因此它的创建方式如下:
一句话概括:将传入多个参数的函数改造为传入单个函数,并返回可接受其他参数的函数的过程,就称为函数的柯里化。 一般常用于:JS脚本打包时用于降低代码量,减小打包后文件大小;以及面试题。
假设这里有一个函数:
function add(a, b) {
return a + b
}
这里是一些有关JS的简单记忆点,记住就行。
reduce() 方法是 Javascript 中内置的数组方法。它一般用于数组的压缩。
1.reduce() 方法可以接收两个参数,一个为回调函数,另一个为 InitialValue, 即传给函数的初始值;
这里的 InitialValue 的值可以是包括但不限于数字,数组或者对象等的值,例如 0
/ []
/ {}
等。当然也可以不传,非必需值。
2.reduce() 方法接收的函数会作为该数组的累加器,使数组中的每个值以既定的顺序(从左到右,即升序)开始缩减,并最终计算为一个值。
Object.defineProperty 是 JavaScript 中 Object 类下的一个高级函数, 它可以用其内置的 getter 与 setter 对传入的数据进行修改操作。一般用于旧时各种JS框架作响应式数据用。由于该方法本质较为臃肿且已经有相应方法做替代,现在大部分框架已经采用 ES6 中的 Proxy/Reflect 新方法作为优先选择。
let number = 18;
let person = {
name: 'Jeasfds',
sex: ' male'
}
Object.defineProperty(person, 'ages', {
// value: 18,
enumerable: true,//控制属性是否可以枚举(默认为false)
writable:true,//控制属性是否可以被修改(默认为false)
configurable:true,//控制属性是否可以被删除(默认为false)
//当有人读取 'person' 的 'age' 属性值时,get 函数(getter)会被调用, 且返回值为age值
get() {
return number;
},
//当有人修改 'person' 的 'age' 属性值时,set 函数(setter)会被调用, 且会收到修改的具体值
set(value) {
number = value;
}
})
在JavaScript函数当中,当我们传入对象时,可以通过直接读取对象属性以获取属性值,以下为例:
function inputObj (object) {
......
let getValue = object.someProps;
......
}