随笔分类 - JS / ES / TS
JavaScript / ECMAScript / TypeScript
摘要:在 JavaScript 中,圆括号 () 是一种运算符,跟在函数名之后,表示调用该函数。比如,print() 就表示调用 print 函数 有时,我们需要在定义函数之后,立即调用该函数,例如: 以上代码出现了语法错误原因是,function 这个关键字即可以当作语句,也可以当作表达式 其中,Jav
阅读全文
摘要:样式的导入方式 link @import link @import 一、link 的使用 二、@import 的使用 三、link 和 @import 的区别 1、引入的内容不同 link 除了引用样式文件,还可以引用图片等资源文件,而 @import 只引用样式文件 2、加载顺序不同 link 引
阅读全文
摘要:一、DOM 事件模型 DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window 二、流 流的概念,在现今的 JavaScript 中随处可见。比如说 React 中的单向数据流,Node 中的流,还有 DOM 事件流,都是流的一种生动体现。至于
阅读全文
摘要:一、什么是 iframe iframe 用于在页面内显示页面,使用 <iframe> 会创建包含另外一个文档的内联框架(即行内框架) <iframe src="URL"></iframe> 二、iframe 的常用属性 1、width 定义 iframe 的宽度 2、height 定义 iframe
阅读全文
摘要:一、JavaScript 的继承 许多面向对象语言都支持两种继承的方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。在 JavaScript 中由于函数没有签名也就无法实现接口继承,而只支持实现继承,而且实现继承主要通过原型链来实现的。 先引述下官方文档对于原型链的描述:
阅读全文
摘要:1、什么是预解析? 在当前作用域下,JS 运行之前,会把带有 var 和 function 关键字的事先声明,并在内存中安排好。(这个过程也可以理解为变量提升)然后再从上到下执行 JS 语句(预解析只会发生在通过 var 定义的变量和 function 上) 2、var 声明的变量 使用 var 声
阅读全文
摘要:关于 new 运算符的原理: 1、红宝书上解释: (1)创建一个新对象 (2)将构造函数的作用域赋给新对象 (3)执行构造函数中的代码 (4)返回新对象 2、MDN上的解释: (1)一个继承自 Foo.prototype 的新对象被创建 (2)使用指定的参数调用构造函数 Foo,并将 this 绑定
阅读全文
摘要:一、JSON 1、什么是 JSON? JSON 全称 JavaScript Object Notation,即 JavaScript 对象表示法,是一种轻量级的数据交换格式,同时也是一种 JavaScript 对象 二、JSONP 1、什么是 JSONP JSONP,即 JSON with Padd
阅读全文
摘要:类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转数字,对象转布尔值等) 一、类型转换的分类 类型转换可以分为隐式类型转换和显式类型转换。 二者的区别显而易见:我们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。 例如: 对变量 b
阅读全文
摘要:JavaScript 为基本数据类型值提供了封装对象,称为内置函数(原生函数) 常见的内置函数包括: String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 关于数组(array
阅读全文
摘要:字符串经常被当作字符数组。字符串的内部实现究竟有没有使用数组并不好说,但 JavaScript 中的字符串和字符数组并不是一回事,最多只是看上去相似而已。 例如下面两个值: 字符串和数组的确很相似,它们都是类数组,都有 length 属性以及 indexOf() 和 concat() 方法: 但这并
阅读全文
摘要:在创建”稀疏“数组(sparse array,即含有空白或空缺单元的数组)时要特别注意: 上面的代码可以正常运行,但其中的”空白单元“(empty slot)可能会导致出人意料的结果。 a[1] 的值为 undefined,但这与将其显式赋值为 undefined(a[1] = undefined)
阅读全文
摘要:在 JS 中,存在六种原始类型:null、undefined、number、boolean、string、symbol 其中 null 不是对象,虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使
阅读全文
摘要:一、querySelector() 的定义 querySelector() 方法选择指定 CSS 选择器的第一个元素 querySelectorAll() 方法选择指定的所有元素 二、与 getElementBy 的区别 这两个新添加的 API 与 getElementById() / getEle
阅读全文
摘要:一、类的定义 ES5 构造函数的写法: function Point(x, y) { this.x = x; this.y = y; } ES6 引入了 Class(类),通过class关键字,可以定义类。 class Point { constructor(x, y) { this.x = x;
阅读全文
摘要:一、什么是 Promise Promise 对象用于表示一个异步操作的最终状态(完成或失败)以及返回的值。 二、Promise 的状态 1、pending 进行中 2、fulfilled 已成功 3、rejected 已失败 Promise 的状态只有两种可能,从 pending 变为 fulfil
阅读全文
摘要:一、什么是JSON? JSON(javascript object notation)全称是 javascript 对象表示法,是一种数据交换的文本格式,用于读取结构化数据,提出目的是取代繁琐笨重的 XML 格式。 二、JSON的语法规则 JSON的语法可以表示以下三种类型的值: 1、简单值 简单值
阅读全文
摘要:1、Array.from() 用于将两类对象转为真正的数组 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5 的写法 var arr1 = [].slice.call(arrayLike); // ['a', 'b
阅读全文
摘要:一、数组的创建 1、使用 Array 构造函数 var arr1 = new Array(); // 创建一个空数组 var arr2 = new Array(20); // 创建一个包含20项的数组 var arr3 = new Array("lily","lucy","Tom"); // 创建一
阅读全文
摘要:一、属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法 let a = 1; let b = 2; let es5 = { a: a, b: b }; // 等同于 let es6 = { a, b }; 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名,
阅读全文

浙公网安备 33010602011771号