let source = {
name: '小李',
price: 100,
}
function validate(target, key, value) {
if (Reflect.has(target, key)) {
if (key == 'price') {
if (...
JavaScript简单使用
let a = {
x: '小花',
price: 190
}
let p = new Proxy(a, {
get(target, key) {
if (key == 'price') {
return target[key] + 20
}else {
...
JavaScript中的Reflect
let obj = {x: '312', y: '666'}
let arr = ['1','2','3']
// Object.freeze(obj)
let d = new Date()
console.log(Reflect.apply(Math.floor, null, [3.99])) // 3 Reflect.apply 反射
co...
关于Promise对象
Promise对象是解决ES5中回调地狱的问题
使用Promise 可以使代码的可读性增强。
使用new Promise的时候需要注意 new Promise后里面的代码将被直接执行。New的时候就会被执行
Promise对象有两个参数resolve和reject
resolve是将Promise的状态改...
JavaScript中的map
以下是我个人对map对象的一些理解,如有不足之处请多批评指正:
1、map可以传入一个可遍历的对象
2、map传入的数组必须是一个可遍历的对象,不能是任意值。
3、map必须传入key、value的形式 example:[[k,v],[k,v]
4、map的key可以是任意值 函数、对象...
5、map添加数据不是用add而是用s...
JavaScript中的set数据结构
我个人关于set的一些理解
1、set 接受的参数是一个可遍历的对象而不一定是一个数组
2、set加入新的数据使用add('hello')
3、set加入数据的时候可以链式操作
4、set如果存入了重复的数据将会自动过滤
5、set还是一个键值对
6、set很难改
// 删除元素
set.delete('goodbay')
...
JavaScript中的结构赋值
在ES5中如果有一个数组有很多的元素。我们可能需要使用数组的索引一个一个的取出来。
这个明显是比较麻烦的。
在ES6中就有了新的取数组中的元素方式
let arr = ['hello', 'world']
let [firstName, lastName] = arr
console.log(firstNa...
JavaScript中的字符串模版
我个人认为这个功能并不是那么简单。
可能有更多实用的功能我只是没有发现。
如果只是那么简单这个功能有点...
let user_type = 'ordinary';
function handle(strings, type) { // 这里指的注意的是第一个参数是个数组,将所有的字符串常量被变量分割的收集起来,第二...
ES5、ES6中的参数默认值
在ES5中设置默认值是十分麻烦的一件事情
大家看一下,了解就好
function add(x, y, z) {
if (y === undefined) {
y = 12
}
if (z === undefined) {
z = 20
}
return x + y +...
深入理解JavaScript中的class
Class
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。
这是摘自阮一峰老师的博客,这句话放在 ES5 可以说不为过,然而到了 ES6 这么说就已经不严谨了。因为 ES6 中已经有了专属的 cl...