
JS语法
文章平均质量分 59
SteveTang957
昔风不起,唯有努力生存
展开
-
ES6基本的语法(十四) Promise 补充
链式调用const myPromise = (new Promise(myExecutorFunc)) .then(handleFulfilledA,handleRejectedA) .then(handleFulfilledB,handleRejectedB) .then(handleFulfilledC,handleRejectedC);// 或者const myPromise = (new Promise(myExecutorFunc)) .then(handleFul原创 2021-03-16 09:24:55 · 177 阅读 · 0 评论 -
ES6基本的语法(十三) Promise
PormisePromise 是一个对象,它代表了一个异步操作的最终完成或者失败。因为大多数人仅仅是使用已创建的 Promise 实例对象,所以本教程将首先说明怎样使用 Promise,再说明如何创建 Promise。本质上 Promise 是一个函数返回的对象,我们可以在它上面绑定回调函数,这样我们就不需要在一开始把回调函数作为参数传入这个函数了。一个 Promise 必然处于以下几种状态之一:待定(pending): 初始状态,既没有被兑现,也没有被拒绝。已兑现(fulfilled): 意味原创 2021-03-10 00:14:48 · 655 阅读 · 0 评论 -
ES6基本的语法(十二) 模拟实现 Map
模拟实现 Map首先上在一篇的文章我介绍了 Map 的主要特点不重复任何类型的值都可以作为属性主要围绕这几点来写还有 Map 里面的方法选择性实现几个 set(), get(), delete(), has(), clear()。function Op(){ this.bucketLength = 8; // 定义的桶的范围 this.init();}Op.prototype.init = function(){ // 初始化一个桶 this.buck原创 2021-03-02 15:29:20 · 165 阅读 · 0 评论 -
ES6基本的语法(十一) Map
MapMap 是 ES6 提供的构造函数,能造出一种新的存储数据的结构。本质上为键值对的集合key 对应 value,key 和 value 唯一,任何值都可以当属性可以让对象当属性,去重基本用法let op = new Map([["name","ccc"],["age","3"]])console.log(op);// Map(2) {"name" => "ccc", "age" =>"3"}let op = new Map([[{},"ccc"]])console.原创 2021-02-24 12:40:14 · 361 阅读 · 0 评论 -
ES6基本的语法(十) 补全Set WeakSet
WeakSetWeakSet 结构与 Set 类似,也是不重复的值的集合。它与 Set 有两个区别。WeakSet 的成员只能是对象,而不能是其他类型的值。WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于 WeakSet 之中。const arr = [1,2,3,4]let newarr = new weakSet(arr) // new wea原创 2021-02-23 00:30:07 · 178 阅读 · 0 评论 -
ES6基本的语法(九) Set
SetSet 是 ES6 提供的构造函数,能够造出一种新的存储数据的结构只有属性值,成员值唯一可以转成数组,其本身具备去重,交集,并集,差集的作用Set 只有属性值// 括号里面可以存放支持迭代接口的值 有 symbol(symbol.inerator) 就属于迭代接口let a = new Set([[1,2,3,4], 33, true,{name: 'ccc'}] );console.log(a)// set(4) { [1,2,3,4], 33, true,{name:原创 2021-02-20 01:07:34 · 309 阅读 · 1 评论 -
ES6基本的语法(三) 扩展运算符
扩展运算符扩展运算符具备两个功能,一个 spreed 展开功能 & rest 收集功能。ES6可以处理数组,ES7能处理对象。扩展运算符的使用function sum(...arg){ console.log(arg); // 输出 [5,2,7,1,3,8]}sum(5,2,7,1,3,8);function sum(a,b,...arg){ console.log(a,b) // 输出5,2 console.log(arg); // 输出 [7,1,3,8]原创 2021-02-02 17:52:00 · 176 阅读 · 0 评论 -
ES6基本的语法(二) const
1.2 constconst 于 let 的共同点不在下面叙述暂时性死区、不能重复声明。const 是用来常量声明的const a;a = 10;// 报错 Uncaught SyntaxError: missing initialization in const declarationconst 不能只声明不赋值。const a = 20;a = 10;// 报错 // TypeError: Assignment to constant variable.const原创 2021-02-02 17:51:06 · 294 阅读 · 0 评论 -
ES6基本的语法(一)let
写在最前面2018年7月30日开始不定期的更新ES6的语法文章的主要思路来自:渡一课堂的网上视频课阮老师的ES6标准入门GitHub上的开源内容以及结合自己的项目经验…(如果后期再有补充在弥补)好了,不在废话直接正题ES ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Comput...原创 2018-07-31 00:00:29 · 425 阅读 · 0 评论 -
我的面试经
目录年前的前端面试总结vue 双向绑定 vue2 vue3vue中 watch 和 computed 区别的区别高并发的场景前端怎么办前端提高性能websocket、网络握手less、sess缓存机制介绍mvvm引用值和原始值堆栈存储this指向原型链输入URL之后都发生了什么es6 的解构数组解构方法数组可以使用默认值对象解构默认值Set 和 map 的介绍和区别介绍一下vue生命周期es6的新特性(说了7-8个,抓了个箭头函数问)浏览器的兼容性css 上的兼容性不同浏览器的标签默认的外补丁(margin原创 2021-01-18 00:11:37 · 170 阅读 · 0 评论 -
Promise配合axios
Promise 是异步编程的一种解决方案,比传统的解决方案–回调函数和事件--更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了语法,原生提供了Promise checkLogin: () => {// 返回一个promise对象 return new Promise((resolve, reject) => { axios({ ...原创 2018-07-26 10:57:39 · 6403 阅读 · 0 评论 -
JS(十八)数组
写在最前面数组数组的定义 new Array(length/content)字面量数组的读和写 arr[num] //不可以溢出读 结果undefinedarr[num] = xxx;//可以溢出写定义数组var arr = [];var arr = new Array(10);//长度为十的空数组数组的读和写var arr = [];arr[...原创 2018-03-23 00:25:07 · 250 阅读 · 0 评论 -
JS(十七)this
写在最前面this函数预编译过程 this –> window全局作用域里 this –> windowcall/apply 可以改变函数运行时this指向obj.function();function()里面的this指向obj函数预编译过程 this –> windowfunction test(c){ var a = 123;...原创 2018-03-19 23:45:48 · 244 阅读 · 0 评论 -
JS(十六)继承模式,命名空间,对象枚举(下)
写在最前面命名空间管理变量,防止污染全局,适用于模块发开发主要就是开发过程中遇到的命名冲突的问题,可以用对象的方法解决var wu = { name : yanzu, age : 18,};var shen = { name = "cheng", age = 18;}//调用的时候wu.nameshen.name//不冲突...原创 2018-03-18 20:02:18 · 294 阅读 · 0 评论 -
JS(十五)继承模式,命名空间,对象枚举(上)
写在最前面继承的发展史传统形式 –> 原型链 过多的继承了没有用的属性借用构造函数 不能继承借用构造函数的原型每次构造函数都要多走一个函数共享原型 不能随便改动自己的原型圣杯模式 原型链的继承A.prototype.name = "wu";function A (){}var a = new A();B.prototype = a;f...原创 2018-03-17 11:56:21 · 330 阅读 · 0 评论 -
JS(十四)原型、原型链、call、apply、bind(下)
写在最前面proto指向的是是他的对象也就是prototypeprototype指向的是他的原型对象constructor 指向的是他的构造函数_proto_是干什么用的function Person(){}var person = new Person();我们通过new的时候,里面经历了三段式Person.prototype,name = "wu";...原创 2018-03-15 23:13:04 · 517 阅读 · 0 评论 -
JS(十三)原型、原型链、call、apply(上)
写在最前面原型定义 : 原型是function对象的已个属性,它定义了构造函数造出的对象和公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象利用原型特点和感念,可以提取公有属性对象如何查看原型–>隐式属性proto对象如何查看对象的构造函数–>constructor// Person.prototype --原型 //这个是系统...原创 2018-03-13 23:45:57 · 309 阅读 · 0 评论 -
JS(十二)对象,包装类(下)
写在最前面构造函数内部原理在函数体最前面隐式的加上this = {}执行this.xxx = xxx隐私的返回thisfunction Student(name,age,sex){ //第一步 在函数体最前面隐式的加上this = {} //var this = {}; //AO{this:{ // name:"", // ...原创 2018-03-13 00:18:18 · 287 阅读 · 0 评论 -
JS(十一)对象,包装类(上)
写在最前面对象属性的增,删,改,查对象的创建方法 字面量构造函数系统自带new object(),array;number();boolean();String;date()自定义Object.create(原型)方法var my = { name : "Mrcheng", age : "18", sex : "male", he...原创 2018-03-09 00:02:09 · 241 阅读 · 0 评论 -
JS(十)闭包、立即执行函数
写在最前面正文开始//例子function a() { function b(){ var bbb = 234; console.log(aaa) } var aaa = 123; return b;}var glob = 100;var demo = a();demo(); 首先这个函数在执行r...原创 2018-03-08 00:40:20 · 338 阅读 · 0 评论 -
JS(九)作用域、作用域链精解
写在最前面作用域精解[[scope]] : 每个JavaScript函数都是一个对象。对象中有些属性我们可以访问,但有些不可以,这些属性仅提供JavaScript引擎存取,[[scope]]就是其中一个。[[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合作用域链 : [[scope]]中存储的执行期上下文对象的集合,这个集合呈链式链接,我们把这种链式链接叫做...原创 2018-03-07 00:50:48 · 238 阅读 · 0 评论 -
JS(八)预编译执行过程
写在最前面JS运行三部曲第一步:语法分析第二部:预编译第三部:解释执行预编译 语法分析也叫语义分析,语法分析他是通篇执行的一个过程,比如我写了好多行代码,这些代码在执行的时候他是解释一行执行一行,但是在执行之前系统执行的第一步它会扫描一遍,看看有没有低级的语法错误,比如少些个括号,带个中文之类的,它会通篇扫描一遍,但是不执行,这个通篇扫描的过程叫语法分析,通篇扫...原创 2018-03-05 09:34:29 · 548 阅读 · 0 评论 -
JS(七)递归
写在最前面写一个函数实现n的阶乘 n! = n*(n-1)!;function mul (n){ //n的阶乘 //for(var i = 1; i <= n;i ++){ // num *= i; //} if(n == 1){ return 1; } return n*mul(n-...原创 2018-03-05 00:28:17 · 362 阅读 · 0 评论 -
JS(六)函数、初始作用域(下)
写在最前面作用域初探作用域定义: 变量(变量作用于又称上下文)和函数生效(能被访问)的区域全局、局部变量作用域的访问顺序 函数里面可以访问函数外面的东西在script标签上定义的变量叫全局变量,在函数内部定义的变量叫局部变量//a是全局变量var a = 123;function test(){ console.log(a);//打印出来是123...原创 2018-03-04 11:14:42 · 290 阅读 · 0 评论 -
JS(六)函数、初始作用域(上)
写在最前面函数定义 函数声明函数表达式组成形式 函数名称参数 形参实参返回值 //函数声明//第一种function box(参数){ //内容};//第二种叫命名函数表达式var box = function test(参数){ //内容}box.name-->test//第二种写法function后面就成了表达...原创 2018-03-04 00:12:37 · 295 阅读 · 0 评论 -
JS(五)简要介绍数组或对象 typeof、类型转换
写在最前面初始引用值数组对象数组 数组对象用来在单独的变量名中存储一系列的值。形式是一个中括号,里面可以写很多东西,中间用逗号隔开,每个逗号类似可以隔开两个仓库,每个仓库可以放东西,比如Number,String ,undefined,放什么类型的值都可以。var arr = [1,2,undefined,"abc",["a",1,5],null]//...原创 2018-03-03 22:21:18 · 1401 阅读 · 0 评论 -
JS(四)条件语句,循环语句
写在最前面运算符说完,说条件语句还有循环语句条件语句ifif elseSwitch语句循环语句forwhiledo....whileif(条件){ //条件为真时执行的方法}if(条件){ //条件为真时执行的方法}else{ //条件为假的时候执行的方法}if (条件 1) { 当条件 1 为 true 时...原创 2018-03-02 00:09:01 · 239 阅读 · 0 评论 -
js(三)比较运算符、逻辑运算符
写在最前面js(二)里面说了简单的加减乘除现在来说另外两种运算符比较运算符“>”、“<”、“==”、“>=”、“<=”、“!=”比较的结果为boolean值逻辑运算符“&&”、“||”、“!”运算结果为真实的值被认定为false的值undefined、null、NaN、""、0、false计较运算符var a = ...原创 2018-03-02 00:08:58 · 439 阅读 · 0 评论 -
JS(二)引入、变量、值类型、运算符
开始正式的复习JS主流浏览器有哪些主流浏览器内核IEtridentChromewebkit/blinkfirefoxGeckoOperaprestoSafariwebkit如何引入JS?页面内嵌<script type="text/javascript"></script>标签外部引入<script src="locatio...原创 2018-03-01 00:41:39 · 208 阅读 · 0 评论 -
最最最基础的JavaScript(一)
写在最前面JavaScript 是属于网络的脚本语言!JavaScript被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。JS语言的特点解释性语言(不需要编译成文件)跨平台单线程ECMA标注-为了取得技术优势微软退出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为...原创 2018-02-25 23:22:24 · 274 阅读 · 0 评论