- 博客(9)
- 收藏
- 关注
原创 JavaScript语言精粹之数组
数组字面量 一个数组字面量是在一对方括号中包围零个或多个用逗号分隔的值的表达式,数组字面量可以出现在任何表达式可以出现的地方,数组的第一个值将获得属性名 '0',第二个值将获得属性名 '1',以此类推。 var empty = []; var numbers = ['zero', 'one', 'two', 'three']; empty[1] //undefined numbers[1] // 'one' empty.length; //0 numbers.length; //4 JS允许数组
2021-07-23 16:03:03
272
1
原创 JavaScript语言精粹之继承
在基于类的语言中,对象是类的实例,并且类可以从另一个类继承,JavaScript是一门基于原型的语言,这意味着对象直接从其他对象继承 1 伪类 JavaScript的原型存在着诸多矛盾,某些看起来有点像基于类讹点语言的复杂语法问题遮蔽了它的原型机制,它不让对象直接从其他对象继承,反而插入了一个多余的间接层,从而使构造器函数产生对象 当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样的一个代码: this.prototype = {constructor: this}; 新
2021-07-18 12:00:27
248
转载 ES6 之解构赋值的用途
变量的解构赋值用途很多。 (1)交换变量的值 let x = 1; let y = 2; [x, y] = [y, x]; 上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰。 (2)从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。 // 返回一个数组 function example() { return [1, 2, 3]; } let [a, b, c] = example();
2021-07-14 23:09:33
250
转载 关于ES6 解构赋值的圆括号问题
解构赋值虽然很方便,但是解析起来并不容易。对于编译器来说,一个式子到底是模式,还是表达式,没有办法从一开始就知道,必须解析到(或解析不到)等号才能知道。 由此带来的问题是,如果模式中出现圆括号怎么处理。ES6 的规则是,只要有可能导致解构的歧义,就不得使用圆括号。 但是,这条规则实际上不那么容易辨别,处理起来相当麻烦。因此,建议只要有可能,就不要在模式中放置圆括号。 不能使用圆括号的情况 以下三种解构赋值不得使用圆括号 (1)变量声明语句 // 全部报错 let [(a)] = [1]; l
2021-07-14 23:03:23
348
转载 JavaScript之顶层对象与globalThis对象
顶层对象的属性 顶层对象,在浏览器环境指的是window对象,在Node指的是global对象,ES5之中,顶层对象的属性与全局变量是等价的 window.a = 1; a // 1 a = 2; window.a // 2 上面代码中,顶层对象的属性赋值与全局变量的赋值,是同一件事 顶层对象的属性与全局变量挂钩,被认为是 JavaScript 语言最大的设计败笔之一。这样的设计带来了几个很大的问题,首先是没法在编译时就报出变量未声明的错误,只有运行时才能知道(因为全局变量可能是顶层对象的属性创
2021-07-12 21:30:47
733
转载 读阮一峰JavaScript this的原理
一.为什么同一个函数运行时,结果不一样? obj.foo() 在 obj 环境中执行 foo() 在全局环境中执行 解释原理 理解this的作用 二. 内存的数据结构 {a:1,b;2} <=> HashMap JavaScript 语言之所以有this的设计,即内存里面的数据有关系 跟传统语言的this不一样,传统语言的this在面向对象之中, var obj = { foo:5 } 右边先执行,先生成一个对象,存储...
2021-07-12 16:54:38
207
翻译 css BEM 命名规范
1.什么是BEM命名规范 BEM是块(block),元素(element),修饰符(modifier)的简写, - 中划线: 仅为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号 __ 双下划线:双下划线用来连接块和块的子元素 _ 单下划线 : 单下划线用来描述一个块或者块的子元素的一种状态 BEM是一个简单又非常有用的命名约定,当你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确,而且更加严密。 1.1 BEM命名模式 BEM命名约定的模式是: .blo.
2021-07-11 21:00:10
777
1
原创 JavaScript语言精粹学习笔记之函数
函数对象 在javascript中函数就是对象,对象字面量产生的对象连接到object.prototype,函数对象连接到function.prototype(该原型对象本身连接到object.prototype),每个函数在创建时附有两个附加的隐藏属性;函数的上下文和实现函数行为的代码 每个函数对象在创建时也随带有一个prototype属性,它的值是一个拥有constructor属性且值即为该函数的对象 因为函数是对象,所以它们可以像任何其他的值一样被使用,函数可以存放在变量、对象和数组中,函数可以
2021-07-11 16:47:56
188
原创 JavaScript语言精粹学习笔记之对象
JavaScript的简单类型包括以下几种: 1.数字 number JS不分整形和浮点型 两个浮点数相加,精度不够 2.字符串 String 3.布尔值 boolean 4.null 5.undefined
2021-07-05 21:46:01
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅