JavaScript的异步编程 ECMAScript6新增了正式的期约Promise引用类型,支持优雅地定义和组织异步逻辑。并增加了async和await关键字定义异步函数的机制。异步编程同步行为和异步行为的对立统一是计算机科学的重要概念。异步行为是为了优化因计算量大而时间长的操作。同步和异步同步行为:对应内存中顺序执行的处理器指令。异步行为:类似系统中断,即当前进程外部实体可以触发代码执行。let x = 3;x = x + 1;setTimeout(() => x = x + 1, 1000);setT
JavaScript的函数 ECMAScript中的函数实际上是对象。每个函数都是Function的实例,而Function也有属性和方法,和其他引用类型一样。函数是对象,函数名就是指向函数对象的指针,而且不一定与函数本身紧密绑定。箭头函数ESMAScript6新增了箭头函数,可以视为函数的简洁写法。箭头函数和普通函数区别argumentsupernew.target不能用作构造函数没有prototype属性this指向不同函数名函数名就是指向函数的指针。所以一个函数可以有多个名称。ECMAScript6中
JavaScript的反射和代理 ES6新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力,为对象定义一个关联的代理抽象对象,通过操作这个对象来对控制被代理的对象。代理基础代理是目标对象的抽象。代理类似C++指针,因为它可以作为目标对象的替身,但又完全独立于目标对象,目标对象既可以被直接操作,也可以通过代理来操作。创建代理代理是使用Proxy来创建的,Proxy接受2个参数:目标对象和处理程序对象。定义捕获器使用代理的主要目的是可以定义捕获器,捕获器就是在处理程序对象中定义的基本操作的拦截器,拦截对应的操作。co
JavaScript的对象和面向对象编程 ECMA-262将对象定义为一组属性的无序集合,没有特定顺序的值。可以将其看成一张[键(string)值对]的散列表。对象创建对象有2种写法:一种是new一个实例,一种是字面量。// 字面量let obj = { name: "lisan", age: 20, phone: undefined, // 一般不要在obj外部新建属性。直接在写字面量时,将可能的值赋值为undefined。 getPhone() { return this.phone;
JavaScript的迭代器和生成器 ECMAScript6新增了两个高级特性:迭代器和生成器。迭代器循环就是迭代机制的基础。迭代会在有序集合上进行。for循环执行迭代不理想:事先要知道如何使用数据结构。遍历顺序不是数据结构固有的。迭代器模式迭代器模式:一些数据结构称为可迭代对象,它们实现了正式的Iterable接口,可以通过迭代器消费。可迭代协议实现Iterable接口(可迭代协议)需要具备两种能力:支持迭代的自我识别能力。创建实现Iterable接口的对象的能力。可迭代对象必须暴露一个属性作为默认迭代器,这个
JavaScript的引用类型 常用集合引用类型包括Object、Array、Map、Set等Object大多数引用值都是使用的Object类型。// 字面量定义let obj = { // 存储任意类型的值。 val: 10, obj: {}, func() { }};// 取值console.log(obj.val);console.log(obj["val"]);ArrayJavaScript中的数组是动态的,可以存储任意类型的值,一组有序的数据。当数组长度变化时会销毁原
JavaScript基本类型 引用值是某个特定引用类型的实例。应用类型就是把数据和功能组合到一起的结构。引用类型虽然像类,但它和类不是一个概念。DateDate是从1970年1月1号00:00:00开始的时间const now = new Date();Date.parse()静态方法Date.parse() 接收一个日期字符串,返回对应日期的毫秒数。Date.UTC() 接收参数,返回对应日期的毫秒数。Date.now() 返回当前日期的毫秒数。继承方法重写了Object的方法。toLocaleStr
JavaScript的变量、作用域和内存 JavaScript是弱类型语言,变量没有限定类型。原始值和引用值原始值:就是简单值,Undefined、Null、Boolean、Number、String、Symbol、BigInt,是按值访问的,数据存储在栈内存中的。引用值:就是多个值构成的对象。操作对象时是对对象的引用,而不是其本身。对象的引用存在栈内存中,对象本身存储在堆内存中的。动态属性原始值不能添加属性,只能通过字面量进行初始化。引用值可以动态添加属性,通过new 或 {} , [] 等来创建。复制属性原始值复制的是一个值
JavaScript的核心 任何语言的核心都是这个语言在基本层面上是如何工作的。语法、操作符、数据类型、内置功能。JavaScript的语法实现都是根据ECMAScript标准来的语法ECMAScript借鉴了C已经类C的语法。其实这个语言的语法都是抄来抄去的,换的可能只是写法或关键字,当然也有一些语言自己创建的语法,简化了一些复杂的操作。区分大小写C和类C语言都是区分大小写的。标识符标识符就是变量、函数、属性、函数参数的名称。组成:第一个字符必须是字母、下划线、美元符号。其他字符可以是字母、下划线、美元符、数字。
在html中使用JavaScript JavaScript的出现就是为了在网页中使用,如何在HTML中使用成了一个问题,在引入JavaScript时不会导致HTML在浏览器中的渲染不会出问题。后来就提出了script标签。script 标签这个是由网景公司创造的。script不仅仅可以写 JavaScript。script 可以写任何语言,就看浏览器是怎么去支持了。目前浏览器主要还是支持的是JavaScript。不过这个标签也给未来浏览器支持其他语言提供了一个容器。8个属性:async:立即开始下载脚本,单不能阻止其他页面动作,如下载
JavaScript的诞生和发展发展历程 JavaScript高级程序设计第四版诞生和发展发展历程诞生1995年,为了解决在浏览器层面对表单验证诞生。是由网景公司一名工程师Brendan Eich设计开发的一种脚本语言。为了乘Java的风而JavaScript(改名)。发展历程后来微软盗版了JavaScript(JScript,万恶的资本家对技术的蹂躏,专利权的重要性。),造就了一代霸主IE浏览器。经过漫长的浏览器大战,IE、谷歌、火狐三分天下。不过各家不同的标准差异,最受折磨的其实是程序员,要考虑不同浏览器不同版本的各种差异。 欧洲计
vue的一些简单认识 关于Vuevue是一个渐进式框架:先用会用的,不会用的用其他代替,然后可以再慢慢去学习。由底到上,由浅入深。一、数据驱动数据改变页面上相应的数据发生变化vue先生成一个DOM树,其实就是一个对象(万物皆对象)。数据发生变化后,执行函数,这个函数会触发算法,缓存之前的DOM树,生成新的DOM树,比较变化。若发生变化了,找到页面对应的位置进行变化。二、插槽子组件 ({插槽1=1,插槽2=2},props:{}){ this.props = props; retrun 插槽1+插槽2}
html笔记(九)关于媒体文件的一些标签 媒体1、img标签:使用标签定义 HTML 页面中的图像。标签有两个必需的属性:src和alt。定义图像的语法是:<img src="url" alt="some_text"> 属性:src值为图像的URL地址。alt是图片加载不出来时显示的内容。img和input一样都是行内块元素:height/width/padding/margin均可用。is...
HTML笔记(八)CSS兼容和响应布局 兼容厂商前缀浏览器 厂商前缀 浏览器内核火狐 -moz- geckoIE -ms- trident(IE内核)谷歌,苹果 -webkit- webkit(谷歌已经弃用)欧朋 ...
HTML笔记(七)CSS3新增的一些属性 Css3新增属性一、圆角、阴影1.圆角 border-radius:value; 四个角 border-radius:value value; 左上角,右下角 右上角,左下角 border-radius:value value value; border-radius:value value value value; 顺时针转,左上角开始 ...
HTML笔记(六)CSS 浮动 定位 浮动 定位Css浮动1.定义 定义元素框相对于其正常位置应该出现的位置2.分类 普通流定位 浮动定位 相对定位 绝对定位 固定定位3.浮动定位指• 将元素排除在普通流之外• 元素将不在页面中占据空间• 将浮动元素放置在包含框的左边或者右边• 浮动元素依旧位于包含框之内浮动的框可以向左或者向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。4、浮动...