js高级其实就是js的重点或难点,es6-es12的一些重难点其实在js高级也已经讲过了,所以就不赘述。这里主要是讲一些es6-es12中前面不是重难点的东西; 整理这个,整理好了之后,把以前看其他老师课程记得笔记和这里的笔记都整合下,把以前的笔记删除了吧;
定义一个类: 类中有构造器,方法,实例成员,静态成员 注意:类中不能存在相同名称的方法,没有方法的重写机制 <script> //1.定义类 class Human{ //构造器 constructor(name,age){ //定义实例成员 this.name=name; this.age=
数组新增的方法 some - 判断数组中是否至少有一个元素是满足指定条件的,返回布尔值 语法: 布尔值 = 数组.some(function(v,i,a){ return 条件; }) // 上面的i和a是可选参数 some内置的原理,遍历数组,判断每个值是否满足条件,有满足的就返回true,并break循环,遍历完以后都没有一个是
箭头函数中的this: 重要特性:箭头函数没有this,所以this是定义的时候,外部所在的对象是他的this。调用的时候的this也没有arguments值; 当在函数中使用一个变量的时候,首先在本函数内部查找这个变量,如果找不到那就去找他的父级函数,依次往上推,最后到window对象,全局变量默认挂载是在wi
let、const、var的区别? let 和 const声明的变量不会出现提升,var声明的变量会出现提升(另外一种说法:let变量也会提升,只不过因为暂时性的限制,不能再let声明变量之前使用) let 和 const是块级作用域,var是函数级作用域 let 和 const不允许重复声明(会抛出错误) let 和 const声明变量之前
This函数的四种调用方式 1.纯粹的函数调用: 这是函数的最通常用法,属于全局性调用,这是this就指全局(浏览器中为window,node中为global) 2.作为对象方法的调用: 函数还可以作为某个对象的调用,这时this就指这个上级对象 3.作为构造函数调用:
数组对象 flat()用途: 用于拉平嵌套数组对象 const numbers = [1, 2, [3, 4, [5, 6]]]; // 拉平一层数组 numbers.flat(); // 输出 [1, 2, 3, 4, [5, 6]] // 拉平两层数组 numbers.flat(2); // 输出 [1, 2, 3, 4, 5, 6] // 拉平两层数组 numbers.flat().flat(); // 输出 [1
第1章 ECMAScript 6简介 第2章 let和const命令 第3章 变量的解构赋值 第4章 字符串的扩展 第5章 正则的扩展 第6章 数值的扩展 第7章 函数的扩展 第8章 数组的扩展 第9章 对象的扩展 第10章 Symbol 第11章 Set和Map数据结构 第12章 Proxy 第13章 Reflect 第14章 Promise对象 第15
1,带参数默认函数 function add(a=10,b=20){ return a+b; } add(); 2,默认表达式也可以是个表达式 function getVal(val){ return val + 5 } function add(a=10,b=getVal(5)){ return a+b; } add(10); 注意:这个getVal是惰性的,如果传值了,表达式不会执行, 3,剩余参数 es5使用a
1. 类的创建 1.1 ES5中类的创建 (即构造函数的创建) // 注:ES5中类的创建其实就是构造函数的创建,和函数创建相同,只是函数名首字母一般推荐大写 // 1. 方法一:直接在构造函数中直接定义属性和方法 // 优点:可以传参 // 缺点:每 new 一个实例,就会复制一份构造函数里面的属性和方法,
最近升级了一下gulp,发现再次压缩时报错 原因是gulp-imagemin 8.0.0只支持ES6语法,而我用的是CommonJS的语法,在引入模块时使用的是require,所以在使用gulp-imagemin的时候就出错了 解决方法: SyntaxError: Cannot use import statement outside a module STEP1: 将gulpfile.js改为gu
不懂前端的后端不是好后端,现在 Github 上的项目是前后端分离的,有时需要看前端传值逻辑 1. 变量 var 是全局作用域,往windows里面写入,可先使用后声明,也可重复定义不建议使用 console.log(a); // undefined var a = 10; var a = 100; let 是块级作用域,只能先定义后使用(没有变
最近自己在跑最新的vue的项目,确实和2来比写法还是有点差别,但都相通的 vue里的插件本质上来说就是个对象,对象里必须包含方法install 具体可以查看官方api https://v3.cn.vuejs.org/api/application-api.html#use 创建一个plugin.js文件演试一下 由于只有一个,我
自学参考:http://es6.ruanyifeng.com/ 一、ECMAScript 6 简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。1、ECMAScript 和 JavaScript 的关系一
五一假期在家重温ES6,学习笔记: 一、Let 和 Var 相比 没有变量提升 是一个块作用域 不能重复声明 不会污染全局变量 Const 声明常量,具有Let的上述特性 建议:使用Const声明变量,除非确定要修改时使用let 二、模板字符串 是同tab键上面的反引号··,插入变量使用${ 变量名 } 三、函数
箭头函数 MDN:箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。 箭头函数的注意事项 箭头函数没有自己的this,只能沿着作用链的上一层继承this,最终都指向windo
1.var、let、const的区别 1.var 可以变量提升,const、let不存在变量提升。 (1)var 代码 console.log(a); // undefiend var a = 100; (2)let、const 代码 console.log(b); // Cannot access 'b' before initialization const/let b = 100; 2.var 不存在暂时性死区,const、l
1. 通过 extends、super 关键字继承 步骤1、使用class构造一个父类 class Parent { constructor(name,age){ this.name = name this.age = age } // 私有方法 sayName(){ console.log(this.name); } } 步骤2、使用cl
1.首次安装 : cnpm i -g @vue/cli 2.创建项目 vue create 项目名 3.运行 : ( cnpm run serve 或)进去代码,点击运行就好了 自定义脚手架 : babel : ES6转换ES5的 eslint : 语法检查的
一、数组扩展创建 1. Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map),可以接受第二个参数,用来对每个元素进行处理,将处理后的值放入返回的数组。 2. Array.of方法用于将一组值,转换为数组,弥补数组
CommonJS CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。CommonJS是nodejs也就是服务器端广泛使用的模块化机制。该规范的主要内容是,模块必须通过module.exports 导出对外的变量或接口,通过 require() 来导
一、concat() concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。 var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr1.concat(arr2); console.log(arr1); //[1, 2, 3] console.log(arr3); //[1, 2, 3, 4, 5] 二、join() join(
可选链条操作符 的官方文档说明 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Optional_chaining vue2若不兼容可选链操作符,需单独下babel转译包。 https://www.cnblogs.com/zhangrenjie/p/15015684.html 可选链操作符的一些说明 https://www.cn
1.props中不定的类型 Number、Boolean、String、null、defined、Sysblom props:{ type:{type:Number,default:()=>({}),} } 2 巧用数组(title) ["待完成",“待审批”,“审批通过”][row.status||""]
在ES6中判断变量是否为数组鉴于数组的常用性,在ES6中新增了Array.isArray方法,使用此方法判断变量是否为数组,则非常简单,如下: Array.isArray([]); // => true Array.isArray({0: 'a', length: 1}); // => false 实际上,通过Object.prototype.toString去判断一个值的类型,也是各大主流