JSES6
文章平均质量分 54
JSES6
cjx177187
这个作者很懒,什么都没留下…
展开
-
--箭头函数--
定义式:不是声明式都算定义式没有var function的都是定义式箭头函数:var fn=(a,b)=>{return a+b}没有function多一个箭头。与其他函数的区别: 箭头函数的this不再是谁调用就指向谁,箭头函数的this指向是,离他最近的嵌套的function的调用者,知道顶层都没有,就是window. 举例: 如果箭头函数的执行体只有一个表达式,就是返回值,那麽可以省略大括号。 如果箭头函数的形参只有一个,那麽还可以省略小括号。{没有形参,两个以上的形参都不能省}原创 2022-07-12 14:35:16 · 405 阅读 · 0 评论 -
--let--
当我们定义一个数组,在for循环内做存值操作,此时在循环以后用数组取访问,函数运行,打印i,在全全局中去寻找i,找到for循环中的I,此时的i就不太真实了,最后打印的是10,数组中的每一位只能保存一个值,所有的值都被覆盖了。 怎末解决这个问题呢?我们一般都是采用闭包,将i保存到函数的形参变量中,但是这种操作会使程序变得复杂,因为每次for循环都要临时保存一次,但我们更希望每次i都能被记住。所以我们可以用ES6新增的修饰符Let解决这个问题。var关键字特点:let关键字特点: 例如计时器的例子: 运行原创 2022-07-08 19:02:10 · 93 阅读 · 0 评论 -
promise---任务队列和事件循环
异步编程中最难的,任务队列分类和事件循环任务指的是js代码中的运行的代码。fn( )代表了fn任务的运行,脚本也是一个任务,计时器的运行也是一个任务,peomise也是一个任务【任务分为同步的任务和异步的任务】【异步任务分两种:宏任务和微任务】同步任务:function fn( )var a=new Array( )var b=fn( )异步任务:setTimeout(fn,100p1.then(fn)conlsosle.log(123)队列优先级:异步宏任务>异步微任务举例:第一行是同步任务先执行;第二行原创 2022-07-13 22:16:10 · 272 阅读 · 1 评论 -
笔试题2—js
第一题: var str='hpyj-js-good' var str2=str.myparse()//输出"hqyjjsgood" 第二题: var arr=[10,4,2,5,30,1] var re=arr.mymax()//找出最大值====>30第三题: var str="abcdqwae" var re=str.repeatCount("ab")//1随便传入一个字符串,找出重复的次数第四题:原创 2022-06-28 10:04:57 · 111 阅读 · 0 评论 -
---类---
类是ES6中为了更加好的把js设计成面向对象的语言的语法特征。 constructor :是类的默认方法,创建类的对象时被调用。也被称为类的构造方法(构造函数、构造器)。一个类中有且仅有一个构造方法。 语法:类名要大写不能在初始化之前使用声明类:匿名类:可以不写名字类的本质:js没有类,是原型的思想设计的类,但是学习和使用这个技术时,心中要有类得思想。类用typeof判断其类型是function ,不能当函数使用。 person类得内部可以写一个constructor方法,用这个类创建对象时,就会运行构造原创 2022-07-12 23:30:26 · 115 阅读 · 0 评论 -
string
ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法: startwith("判断字符串",数字{第数字位是不是以判断字符串开头} )===>判断是不是以什么开头,后面的数字可以省掉endwith("判断字符串", 数字{判断原字符串的前数字位是不是以判断字符串结尾})===>判断是不是以什么结尾,后面的数字可以省掉includes(字符串)====>判断字符串是否存在于原字符串中repeat(平铺次数 )=====>平铺,不填写也要打印,打印空格。填写负数,零点几次,原创 2022-07-12 11:14:58 · 98 阅读 · 0 评论 -
--解构赋值--
概述通俗的来讲:解析数据源,然后按照数据模型进行取值,再赋值给变量 let obj={a:100,b:"hello",c:[10,203,0]let {a,b,c}=obj就是解构赋值//隐式操作:let a=obj.a;let b=obj.b;let c=obj.c 结构模型:变量修饰符 数据模型=数据源 解构:按照数据模型取出数据源中的数据,赋值:然后赋值给模型变量 做个练习吧: //var a=arr[0], var b=arr[1], var c=arr[2] //var name=arr[原创 2022-07-10 16:04:10 · 136 阅读 · 0 评论 -
--Map--
ES6出的新的数据容器技术。数组、对象====>存,取数据数组:对象:map:没有语法糖!初始化结构:var 变量名=new Map([key值,数值],[key值2,数值2]) 取出数据:get(key值)=====》用key值存数据:set(key值,数值)=====》用key值数据数量:size删除数据:delete(key值)===》返回值是true/false清楚数据:clear()====>没有返回值遍历数据:foreach(function(el){ } )应用案例:=====>购物车我们用打原创 2022-07-12 19:34:42 · 183 阅读 · 0 评论 -
arr,map和set之间的转换
数组转map:必须是二维数组map转数组:Array.from()静态方法===》可以传数组,也可以传集合最后一个打印true,因为from是浅拷贝不会产生新的对象。所哟两个对象是一样的。数组转集合:setset函数带有去重功能,所以打印出来的数组中包含100,200,{ age:20}集合转数组:Array.from()静态方法多个数组转集合和map: …字符串转集合:英文:两个空字符串解出来只有一个,两个l解出来也只有一个:中文:字符在后台表现出来的也是空字符串,但是它和本身的空字符串不一样。两者编码不原创 2022-07-12 11:14:11 · 191 阅读 · 0 评论 -
--代码块--
代码块(三种)都打印20 ,在ES5包括ES6中大括号都不表示一个作用域,只能函数才有作用域。所以在ES6中引入两个变量解决这个问题。举个例子:如果我想要当i=1时跳过外面那层的循环,这是就只需要将外面那层循环变成一个代码块这样就可以运用contiun跳过外层循环这就是代码块的运用。再例如一个for循环内定义一个i在0-9内,每次加一。在for循环内马上使用这个i就没甚麽问题,但是如果里面有一个延迟使用的值,那就会出现问题了。在for循环内定义一个函数,在没有调用时函数是不会运行的,所以打印的是0-9当我们原创 2022-07-08 16:47:54 · 88 阅读 · 0 评论 -
const
const ====>js的常量修饰符let var 修饰的变量的值可以被修改const特点: 修饰自定义标识符的变量名: var let const function原创 2022-07-08 19:17:02 · 128 阅读 · 0 评论 -
promise语法
学习promise语法的铺垫语法:1.setTime( )函数是一个非阻塞的异步函数如果添加两个setTime函数,他们同 时运行。先运行完毕的先打印。如果同时运行完毕,那么就按代码的顺序打印。2.后端的fs.readFile( )函数也是一个非阻塞的异步函数3.ES6中的promise对象的then函数也是一个非阻塞的异步函数数据容器有:Map Set Object Array promise ====>被动产生数据,给他添加数据怎样产生数据?====>网络请求会学习!取数据:数组==>下标;对象==>原创 2022-07-13 19:30:47 · 444 阅读 · 0 评论 -
---对象---
ES6的对象成员可以写做一个单词 这个单词是变量名:把变量名作为对象的属性名 值取出为属性值(易于读取,提高开发)由于这是一个大括号,所以js引擎可以自己纠错。属性的变量写法:ES6的对象成员可以写做一个单词 这个单词是变量名:把变量名作为对象的属性名 值取出为属性值(易于读取,提高开发)====>作用方法简写:函数根据业务有很多别称:构造函数、静态函数、方法、事件处理程序、闭包、回调函数、钩子函数对象中函数的写法(两种):新语法:成员名名可以用表达式,对象,布尔值书写,但是必须要用中括号括起来。es6可以原创 2022-07-12 11:15:30 · 53 阅读 · 0 评论 -
--set--
ES6出的新的数据容器技术。 Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。没有语法糖! 增加数据:add( )取出数据:Array.from( )取出全部数据:… 举例: 但是arr和arr2是不等的,因为…是将原有的元素全部取出,然后保存到新数组中,所以新数组和旧数组是不相等的。 那么我们如果再原数组中添加一个对象,利用…取出并保存到新数组后,两个新对象还相等嘛? 结果打印的是true.因为…的意义是将数组中的数据取出来,基本数据就是基本数据,引用数据就是把引原创 2022-07-11 19:46:58 · 84 阅读 · 0 评论 -
ES6----数组
Arry.of( )将参数中所有值作为元素形成数组。可以多个参数。Arry.from( ):将类数组对象或迭代对像=> {可以遍历的对象} 转换为数组,可以写入回调函数,函数的返回值直接放入数组中。函数调用几次就传入几次。可以指定thisArry.find( ):传入的是回调函数====>做筛选。查找数组中符合条件的元素,若有多个符合条件的元素,返回值是第一个元素re的返回值是find()函数的返回值,不是 function函数的返回值。传入的function函数的返回值是作为了条件,所以re并不是一个布尔原创 2022-07-12 16:47:41 · 601 阅读 · 0 评论 -
symbol
ES5中基本数据类型:null undefined number boolean stringES6中新增的基本数据类型:symbol 打印出来的是空值,因为b.age=20有一个隐式操作,就是new Number (100),而下面打印的b.age也有一个隐式操作=====>new Number (100),这是两个不同的引用空间,所以你会发现你在上面添加了一个b.age=20到后面打印时就消失了。但是symbol和他们就不同,首先在定义symbol时就不用new关键字,直接赋值这个能用作哪里呢?调用这原创 2022-07-11 18:20:58 · 127 阅读 · 0 评论 -
--模块化--
js代码引入脚本中的方式:js引擎要去执行的标签的某些属性中 console.log(111) 导入和嵌入可以一起用,但是只会运行导入的文件。模块化:导入{import},导出{export}导入和导出的变量名必须一致,多个导出要用大括号括起来,用逗号隔开。优点:减少环境污染。=====>test.js文件中声明的全局变量就会污染当前html文......原创 2022-07-12 23:29:43 · 150 阅读 · 0 评论 -
笔试题js
分析:后面的代码用child函数创建的对象的原型对象是 child1.prototype=o1{a:1,b:[1,2,1],c:{demo:5},show:上面的函数,__proto__:o3{}}parent=o2{a:1,b:[1,2,1],c:{demo:5},show:上面的函数,__proto__:o3{}}child2={a:12,change:上面的函数,__proto__:o1}child1={a:11,change:上面的函数,__proto__:o1}运行Parent()函数 conso原创 2022-06-28 10:03:23 · 67 阅读 · 0 评论 -
Promise异步编程
1、promise对象(1)概述(2)promise使用通过new关键字创建Promise对象varp=newPromise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log('执行完成'); resolve('随便什么数据'); }, 2000);});参数说明:resolve是将Promise的状态置为fullfiled,reject是将Promise的状态置为re原创 2022-06-27 12:17:41 · 983 阅读 · 0 评论 -
symbol
es5: 5个基本数据类型 number boolean string null undefinedes6 :1个基本数据类型 symbol原创 2022-06-27 12:03:29 · 74 阅读 · 0 评论 -
js---模块化
(1)概述- ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。- ES6 的模块化分为导出(export) 与导入(import)两个模块。(2)特点- ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use strict;。- 模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。- 每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。- 每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,原创 2022-06-27 12:14:24 · 66 阅读 · 0 评论 -
Let和Const
1、let与constES6新增加了两个重要的 JavaScript 关键字: let 和 const。Let:1.代码块内有效{ let a = 0; console.log(a); // 0}console.log(a); // 报错 ReferenceError: a is not defined2.不能重复声明let b = 3;let b = 4;console.log(b); // Identifier 'a' has already been declared不存在变量提升con原创 2022-06-26 11:32:57 · 87 阅读 · 0 评论 -
字符串数字出现的新功能
(1)子串的识别ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法以上三个方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引注意:- 这三个方法只返回布尔值,如果需要知道子串的位置,还是得用 indexOf 和 lastIndexOf 。- 这三个方法如果传入了正则表达式而不是字符串,会抛出错误。而 indexOf 和 lastIndexOf 这两个方法,它们会将正则表达式转换为字符串并搜索它。(2)字符串重复repeat():返回新的字符串,表示将字原创 2022-06-27 12:06:29 · 72 阅读 · 0 评论 -
内置对象——数值
console.log(0b11===3); // trueconsole.log(0B11===3); // trueconsole.log(0o11===9); // trueconsole.log(0O11===9); // true(2)方法console.log( Number.isFinite(1)); // trueconsole.log( Number.isFinite(0.1)); // true// NaN 不是有限的console.log( Number.isFinite(NaN)原创 2022-06-27 12:10:36 · 85 阅读 · 0 评论 -
js---箭头函数
(1)箭头函数定义箭头函数提供了一种更加简洁的函数书写方式。基本语法是: 参数 => 函数体 (参数) => {函数体}基本语法:且需要返回结果时,可以省略 {} , 结果会自动返回。(2)适合使用的场景ES6 之前,JavaScript 的 this 对象一直很令人头大,回调函数,经常看到 var self = this 这样的代码,为了将外部 this 传递到回调函数中,那么有了箭头函数,就不需要这样做了,直接使用 this 就行。所以,当我们需要维护一个 this 上下文的时候,就可以使用原创 2022-06-27 12:12:38 · 832 阅读 · 0 评论 -
数组对象出现的新功能
(1)数组创建参数说明:Array.from(arrayLike[, mapFn[, thisArg]])的字符(2)扩展的方法原创 2022-06-27 12:11:36 · 218 阅读 · 0 评论 -
js--全局工具
window的一些功能 全局方法或者属性原创 2022-06-27 12:16:34 · 78 阅读 · 0 评论 -
map-set
(1)MapMap 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。- 一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。- Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。- Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。- Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。Map特点:有序、键值对(键可以是任意类型)、键名不能重复(如果重原创 2022-06-27 12:05:32 · 72 阅读 · 0 评论 -
js---解构赋值
在解构中,有下面两部分参与:基本let [a, b, c] = [1, 2, 3];console.log(a, b, c); //1 2 3可嵌套let [a, [[b], c]] = [1, [[2], 3]];console.log(a, b, c); //1 2 3可忽略let [a, , b] = [1, 2, 3];console.log(a, b); //1 3不完全解构let [a = 1, b] = []; // a = 1, b = undefined剩余运算符let [a, ...b]转载 2022-06-26 12:36:04 · 86 阅读 · 0 评论 -
js---类
js是一个基于面向对象的单线程的脚本语言 基于面向对象 js不是面向对象 它的使用想跟面向对象用法一样 但是底层是原型的思想 es6为了更像面向对象语言(1)概述(2)类定义(3)类的主体(4)类的继承......原创 2022-06-27 12:14:38 · 292 阅读 · 0 评论 -
ES6发展史
1、简介ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。背背背:1、IE浏览器内核:Trident内核,也是俗称的IE内核;2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,原创 2022-06-26 11:30:39 · 295 阅读 · 0 评论