随笔分类 - JavaScript 高级
摘要:1. 变量的作用域复习 变量根据作用域的不同分为两种:全局变量和局部变量。 函数内部可以使用全局变量。 函数外部不可以使用局部变量。 当函数执行完毕,本作用域内的局部变量会销毁。 2. 什么是闭包 闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解就是 ,一个作用域可以访问另外一
阅读全文
摘要:Set 数据结构(★★) ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构 const s = new Set(); Set函数可以接受一个数组作为参数,用来初始化。 const set = new Set
阅读全文
摘要:模板字符串(★★★) ES6新增的创建字符串的方式,使用反引号定义 let name = `zhangsan`; 模板字符串中可以解析变量 let name = '张三'; let sayHello = `hello,my name is ${name}`; // hello, my name i
阅读全文
摘要:Array 的扩展方法(★★) 扩展运算符(展开语法) 扩展运算符可以将数组或者对象转为用逗号分隔的参数序列 let ary = [1, 2, 3]; ...ary // 1, 2, 3 console.log(...ary); // 1 2 3,相当于下面的代码 console.log(1,2,3
阅读全文
摘要:箭头函数(★★★) ES6中新增的定义函数的方式。 () => {} //():代表是函数; =>:必须要的符号,指向哪一个代码块;{}:函数体const fn = () => {}//代表把一个函数赋值给fn 函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号 function su
阅读全文
摘要:解构赋值(★★★) ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构 数组解构 let [a, b, c] = [1, 2, 3]; console.log(a)//1 console.log(b)//2 console.log(c)//3//如果解构不成功,变量的值为und
阅读全文
摘要:let、const、var 的区别 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值
阅读全文
摘要:const(★★★) 声明常量,常量就是值(内存地址)不能变化的量 具有块级作用域 if (true) { const a = 10; }console.log(a) // a is not defined 声明常量时必须赋值 const PI; // Missing initializer in
阅读全文
摘要:什么是ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。 变量提升特性增加了程序运行时的不可预测性 语法过
阅读全文
摘要:1. 正则表达式的组成 一个正则表达式可以由简单的字符构成,比如 /abc/,也可以是简单和特殊字符的组合,比如 /ab*c/ 。其中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。 特殊字符非常多,可以参考: MDN jQuery 手册:正则表达式部分 2.
阅读全文
摘要:1. 正则表达式的创建 在 JavaScript 中,可以通过两种方式创建一个正则表达式。 方式一:通过调用RegExp对象的构造函数创建 var regexp = new RegExp(/123/);console.log(regexp); 方式二:利用字面量创建 正则表达式 var rg = /
阅读全文
摘要:1.什么是正则表达式 正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文
阅读全文
摘要:1. 什么是递归 递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数 注意:递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。 2. 利用递归求1~n
阅读全文
摘要:1. 什么是严格模式 JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。 严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。 严格模
阅读全文
摘要:2.this 2.1函数内部的this指向 这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. 2.2改变函数内部 this 指向 2.2.1 call方法 call()方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数
阅读全文
摘要:1.函数的定义方式 方式1 函数声明方式 function 关键字 (命名函数) function fn(){} 方式2 函数表达式(匿名函数) var fn = function(){} 方式3 new Function() var f = new Function('a', 'b', 'cons
阅读全文
摘要:1.数组方法 迭代(遍历)方法: forEach0、map0、filter(、 some0、 every0 ; array. some (funct ion (currentValue, index, arr) ) ●some0 方法用于检测数组中的元素是否满足指定条件.通俗点查找数组中是否有满足条
阅读全文
摘要:1.call() call()可以调用函数 call()可以修改this的指向,使用call()的时候 参数一是修改后的this指向,参数2,参数3..使用逗号隔开连接 function fn(x, y) { console.log(this); console.log(x + y);} var o
阅读全文
摘要:1.1对象的三种创建方式- 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(name,age){ this.name = name; this.age = age;}var obj = new Per
阅读全文
摘要:1.功能需求 点击 tab栏,可以切换效果. 点击 + 号, 可以添加 tab 项和内容项. 点击 x 号, 可以删除当前的tab项和内容项. 双击tab项文字或者内容项文字可以修改里面的文字内容 2.案例准备 获取到标题元素 获取到内容元素 获取到删除的小按钮 x号 新建js文件,定义类,添加需要
阅读全文