JavaScript百炼成仙
JavaScript百炼成仙和JavaScript高级程序设计(第四版)学习笔记
hibiscusxin
人生海海,山山而川,不过尔尔。
展开
-
变量---var、let和const
var、let和const简单来讲就是var 全局变量,有变量提升let、const局部,没有变量提升,要先声明后使用let 可修改const不可修改,在声明时要进行赋值一、var关键字存在全局作用域和函数作用域两种,有变量提升,没有块级作用域的说法。1、var声明作用域使用var在一个函数内部定义一个变量,该变量将在函数退出时被销毁:function test() { var msg = 'hi'; // 局部变量}test(); console.log(msg);原创 2021-12-15 15:22:49 · 1028 阅读 · 0 评论 -
Proxy代理
Proxy代理Proxy的作用就是允许我们声明一个代理,对某个对象进行一些特殊的访问拦截。在支持Proxy的浏览器环境中,Proxy是一个全局对象,它可以被直接使用。Proxy(target, handler)是一个构造函数,target即被代理的目标对象,handler是一个对象,声明了代理target的指定行为。// 例子:代理对象对数据进行校验let obj = { name: 'dd', age: 18}let objProxy = new Proxy(obj, {原创 2021-12-03 14:31:21 · 1053 阅读 · 0 评论 -
promise对象和async函数
promise对象和async函数promise是异步编程的一种解决方案。从语法上说,promise是一个对象,使用它可以获取异步操作的消息。let name = nullnew Promise((resolve,reject) => { setTimeout(_=> { if (Math.random() < 0.5) { name = 'xin' resolve(name) } else {原创 2021-12-03 14:01:16 · 667 阅读 · 0 评论 -
es6语法部分-强化后的函数
es6语法部分-强化后的函数1、箭头函数在es6中,允许省略function关键字,直接用一个箭头声明一个函数。let sayhi = (name, age) => { console.log(`大家好,我叫${name},今年${age}了!`)}sayhi('dd', 18) // 大家好,我叫dd,今年18了!如果只有一个参数,则可以省略括号let sayhi = name => { console.log(`你好,${name}!`)}sayhi('z原创 2021-12-03 11:41:02 · 619 阅读 · 0 评论 -
es6语法部分-更加灵活多变的对象
es6语法部分-更加灵活多变的对象let name = 'zhang'// 以前let obj = { name: name}// es6允许我们将其简写成name,只要(上面)左右两边的名字是一样的,就可以简写let obj = { name }// {name: 'zhang'}属性名称是变量的时候let key = 'name'let obj = { [key]: 'zhang'}// {name: 'zhang'}...原创 2021-12-03 09:42:44 · 59 阅读 · 0 评论 -
es6语法部分-强化后的数组
es6语法部分-强化后的数组1、快速构建新数组Array.of()将参数中的所有值作为元素形成数组。如果参数为空,则返回空数组。var a = 1,b = 'n', c = 2;Array.of(); // []Array.of(a); // [1]Array.of(a, b, c); // [1, 'n', 2]Array.from()可以将类数组对象或可迭代(可遍历)对象转化为数组。类数组对象就是一种可遍历的对象,只要对象有length属性,而且有诸如0、1、2、3这样的属性,那么原创 2021-12-02 18:48:31 · 370 阅读 · 0 评论 -
ES6语法部分-字符串
ES6语法部分-字符串改进1:允许字符串直接用for循环遍历,这里要用for…of,而for…in获取的是每个字符串的下标let str = 'hello word!'for(let s of str) { console.log(s)}// h e l l o W o r d !for(let s in str) { console.log(s)}// 0 1 2 3 4 5 6 7 8 9字符串允许被当做数组一样使用,换句话说,我们可以用下标的方式获取字符串中某个位原创 2021-12-02 14:13:14 · 671 阅读 · 0 评论 -
Vue-cli搭建项目
Vue-cli搭建项目1、安装vue-cli和原型工具创建一个空的文件夹,然后在这个目录下执行以下命令// 全局安装vue-clinpm install -g @vue/[email protected]// 仅有vue-cli还不够,还需要安装它的一个原型工具npm install -g @vue/[email protected]注意:版本号要保持一致,不然会有莫名其妙的错误2、创建新项目vue-projectvue create vue-project有一些询问直接回车即可,创原创 2021-12-01 17:24:53 · 236 阅读 · 0 评论 -
Vue事件修饰符
Vue事件修饰符stop、prevent、capture、self、once**stop:**阻止事件冒泡<div @click="parentClick"> // 使用.stop,代表停止冒泡,就不会再触发父元素的@click了 <input @click.stop="childClick"></input></div>**.prevent:**阻止提交,只对form和a标签有效form表单组件和a链接组件都会导致页面刷新和跳原创 2021-12-01 15:49:44 · 211 阅读 · 0 评论 -
JavaScript编译原理
JavaScript编译原理以var = 8;为例有以下步骤:1、分词JavaScript是有一句话组成的,分词的目的是把这些代码分解为一个个有意义的代码块。var、a、= 、 8、;2、解析由JavaScript编译器对刚才分词得到的一个个代码块进行解析,生成一棵抽象的语法树(AST)。简单的说就是,JavaScript代码是没办法直接运行的,要想运行JavaScript代码,需要通过JavaScript编译器对其进行编译,只有编译之后的代码才可以被识别,然后通过JavaScript引擎执原创 2021-11-30 10:36:31 · 649 阅读 · 0 评论