ECMAScript

vue 生命周期钩子的理解 watch computed

怎甘沉沦 提交于 2020-05-08 10:35:55
一 理解vue的生命周期,首先需要注意几个关键字   1. el :选择器   2. $el:对应选择器的template模板(html代码)   3. render:也是vue实例中的一项,其参数更接近vue解析器,按优先级,render参数 > vue实例对象中有template > 外部的HTML模板 后面两个也是将其编译成render函数  【注意】render选项参数比template更接近Vue解析器!所以优先级如下:      render函数选项 > template参数 > 外部HTML   4. $mount :当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中,假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载。例如:   new Vue({内部无el项}).$mount('#app')是延迟加载,同下面的语句相同    new Vue({el:"#app",***}) 二 各个生命周期 beforecreate》created》beforeMount》mounted》beforeDestroy 1. beforecreate:el 和 data 并未初始化;   案例:可以在这加个loading事件 及获取路由参数,但是this.(data|computed|methods)参数均为undefind(无法访问到 el 属性和

学习 javascript (一)javascript 简介

时光总嘲笑我的痴心妄想 提交于 2020-05-08 03:21:33
javascript 从一个简单的输入验证器发展成为一门强大的编程语言。 历史 以前我们输入一个表单,点击完提交后,服务器发送反馈给我们。比如填写姓名的时候,我们在前端不能限定人们只能输入汉字,需要服务器告诉我们:你丫错了,又输入数字了!! Netscape 公司决定着手开发一种客户端语言,用来处理简单的验证,命名为 livescript, 后来发展成为我们的 javascript 。 那么为什么叫 javascript ? 而不叫“张三script”、“李四script”, 导致现在有的人还以为 javescript 是 java 的小弟。请看下面分解: 在 1995 年 Sun 公司将 Oak 语言改名为 Java ,正式向市场推出。 Sun 公司大肆宣传,许诺这种语言可以"一次编写,到处运行"( Write Once , Run Anywhere ),它看上去很可能成为未来的主宰。历史证明,到现在 java 只是处于重要的位置,编程语言百家争鸣。 总之, java 当时火得一塌糊涂,Netscape 公司内部的高管一个个像着魔一样,相信 Java 是世界上最好的语言。于是,让 livescript 改名为 javascript,有点像今天的蹭热点。 后来 javascript 发展成三个不同的版本: NetScape Navigator 中的 Javascript

javascript能做什么 和其简单的内容

拜拜、爱过 提交于 2020-05-07 19:32:35
javascript能做什么 网页三大结构: html------>结构 搭建网页结构 css------->样式 美化页面 javascript-->行为 网页面向用户 用户跟网页有交互,可以让网页动起来 1. 常见的网页效果【表单验证,轮播图。。。】 2. 与H5配合实现游戏【水果忍者: http://www.jq22.com/demo/html5-fruit-ninja/】 3. 实现应用级别的程序【http://naotu.baidu.com】 4. 实现统计效果【http://echarts.baidu.com/examples/】 5. 地理定位等功能【http://lbsyun.baidu.com/jsdemo.htm#i4_5】 6. 在线学编程【https://codecombat.163.com/play/】 7. js可以实现人工智能【面部识别】 8. 。。。 js组成 EcmaScript 基础语法 第一周学习 前期主要学习es5 后续学习es6 BOM 浏览器对象模型 浏览器相关 DOM 文档对象模型 操作html/css js能如何在html中使用 1,新增script标签,在script标签内容中写js(内部引入 类比css内部样式表) <script type="text/javascript"> alert("hello

nodejs Api和ECMAScript新特性

非 Y 不嫁゛ 提交于 2020-05-07 01:49:59
  ES7新特性:Async Functions (异步函数):    异步是什么     无法立即获得执行结果,满足某种条件的时候才执行    JS中的异步操作:1、定时器都是异步操作2、事件监听(事件绑定)都是异步操作3、AJAX中一般我们都采取异步操作(也可以同步)4、回调函数可以理解为异步(不是严谨的异步操作)剩下的都是同步处理    示例: for (var i = 1; i <= 3; i++) {         setTimeout(function(){           console.log(i);         }, 0);        };    异步的好处     Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。  这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步

JavaScript闭包

爱⌒轻易说出口 提交于 2020-05-06 07:49:54
闭包 语法作用域 考虑如下情况: function init() { var name = "Mozlilla"; // name是一个被 init 创建的局部变量 function displayName() { // displayName()是内部函数,一个闭包 alert(name); // 使用了父函数中声明的变量 } displayName(); } init(); init()创建了一个局部变量 name 和一个名为 displayName() 的函数。 displayName() 是定义在 init() 里的内部函数,仅在该函数体可用。 displayName() 内没有自己的局部变量,然而它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name 。但是,如果有同名变量 name 在 displayName() 中被定义,则会使用 displayName() 中定义的 name 。 闭包 现在来考虑如下例子: function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var myFunc = makeFunc(); myFunc(); 运行这段代码和之前的

javascript---lat const var 的区别

断了今生、忘了曾经 提交于 2020-05-06 02:18:08
首先,ECMAScript和JavaScript关系: ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者组成。可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。 1. 块作用域{ } JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块级作用域。 块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。 <script type="text/javascript"> { var a = 1; console.log(a); // 1 } console.log(a); // 1 // 可见,通过var定义的变量可以跨块作用域访问到。 (function A() { var b = 2; console.log(b); // 2 })(); // console.log(b); // 报错, // 可见,通过var定义的变量不能跨函数作用域访问到 if(true) { var c = 3; } console.log(c); // 3 for(var i = 0; i < 4; i++) { var d = 5; }; console.log(i); // 4

JS 事件循环机制

荒凉一梦 提交于 2020-05-05 15:46:05
一、JS单线程、异步、同步概念   从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件循环。在此之前需要了解JS单线程,及由此产生的同步执行环境和异步执行环境。   众所周知,JS是单线程(如果一个线程删DOM,一个线程增DOM,浏览器傻逼了~所以只能单着了),虽然有webworker酱紫的多线程出现,但也是在主线程的控制下。webworker仅仅能进行计算任务,不能操作DOM,所以本质上还是单线程。   单线程即任务是串行的,后一个任务需要等待前一个任务的执行,这就可能出现长时间的等待。但由于类似ajax网络请求、setTimeout时间延迟、DOM事件的用户交互等,这些任务并不消耗 CPU,是一种空等,资源浪费,因此出现了异步。通过将任务交给相应的异步模块去处理,主线程的效率大大提升,可以并行的去处理其他的操作。当异步处理完成,主线程空闲时,主线程读取相应的callback,进行后续的操作,最大程度的利用CPU。此时出现了同步执行和异步执行的概念,同步执行是主线程按照顺序,串行执行任务;异步执行就是cpu跳过等待,先处理后续的任务(CPU与网络模块、timer等并行进行任务)。由此产生了任务队列与事件循环,来协调主线程与异步模块之间的工作。 二、事件循环机制  

JavaScript—var lef const区别

丶灬走出姿态 提交于 2020-05-04 07:18:06
今天刚刚学JavaScript 因为以前学过。学起来也就轻松。今天在练习。流程控制语句的时候,用WebStrom 写的时候 var 声明变量的时候 下面老是有一条白线。开始以为是开发环境有问题 然后,我就各种百度查。后来查到ECMAscript 6(es6) 之前学的时候肯本不知道。就简单看了一下。主要用来规范JavaScript(JS用的越来越强大) 地址: http://es6.ruanyifeng.com/#docs/let 然后我看了下 JS 提升机制(hoisting) 然后为了解决这个带来的一些麻烦 就出来的闭包 js里面自带很多bug 比如 这就是一个BUG 我也不太明白。 然后把VAR改成let 问题就解决了 至于Lef 和const: const 和 let 的作用域是一致的,不同的是 const 变量一旦被赋值,就不能再改变了 总结: 大多数情况下都使用 const,除非你知道你的变量的值还会被改变,这样的话,别人阅读你的代码不用老想着这个变量的值会不会有改变。如果这个变量的值的确需要改变,例如在 for 循环里面和需要改变的,那么就是用 let。这也同时意味着你以后就不要用 var 了。 时代在进步 代码也在规范。一切都是为了 以后更好 来源: oschina 链接: https://my.oschina.net/u/4323572/blog/3566790

09.ES6 之 let ,conts.结构赋值

一世执手 提交于 2020-05-04 06:09:36
ES6 ECMAScript 6 (js语言的标准 规范) js是它是实现 编写复杂大型的项目 let var var 函数作用域 let 块级作用域 ----------- function a(){ if ( true ){ var str = "shaozhu" ; } console.log(str); }; a(); shaozhu ----------- function a(){ if ( true ){ let str = "shaozhu" ; } console.log(str); }; a(); 报错 --------------------------------- let 变量不能重复声明一样的变量 let a=1 ; let a =2; 报错 ------------- 箭头函数 变量名= 参数 =>函数体 var f = function(v){ return v } var f = v => v; 不传参 var f = () =>"123"; --------- var f =(a1,a2,a3)=>a1+a2+a3; f(5,5,5) 15 --------- --------------------------------------------------------------- ES6 ECMAscript 6.0 复杂/大型应用程序

轻松弄懂var、let、const之间的区别

我只是一个虾纸丫 提交于 2020-05-04 03:48:07
ECMAScript 6(简称ES6)是JavaScript语言的下一代标准,于2015年6月正式发布,也称ECMAScript 2015。 ES6的好处 ES6的出现为我们前端带来了很多方便之处,以前用js几十行才实现的一个功能,ES6几行代码就能简单的实现,ES6新增的一些特性,改变了很多弊端之处,比如新出现的let、const,实现了块级作用域功能,减少了以前var的全局变量,箭头函数代替词法作用域的"this" 等等,在这里就不再做更多的举例子,想了解更多请参考 https://www.w3cschool.cn/ecmascript/pgms1q5d.html ,今天主要跟大家一起了解一下var、let、const之间的区别 let let是ES6新增的命令,用来声明变量,跟var声明变量一样。但是它俩有很大的区别。 let、const声明的变量仅在块级作用域内有效,var 声明变量是全局的,没有块级作用域功能 let 、const 不存在变量提升 , var 存在变量 let 、const不能在同一块级作用域内重复申请 用let定义变量,运行代码如下: const arr = [1, 2, 3, 4] for (let i = 0; i < arr.length; i++) { console.log(arr[i]) } console.log(i); 以上报错i未定义