基本的类声明 类声明以class关键字开始,其后是类的名称:剩余部分的语法看起来像对象字面量中的方法简写,并且在方法之间不需要使用逗号. class Person { //等价于prototype的构造器 constructor(name) { this.name = name; } SayName() { console.log(this.name); } } let per = new Person("cf"); per.SayName();//cf console.log(typ…
众所周知,在ES6之前,JavaScript是没有块级作用域的,如下图所示: 学过其他语言的同学肯定有点诧异,为什么会这样呢?因为js还是不同于其他语言的,在ES5中,只有全局作用域和函数作用域,并没有块作用域,当然我们可以实现块作用域的功能.看下面代码: 在这段段代码中,我们使用立即执行函数(IIFE)创建了一个局部函数来模仿块级作用域.在ES5时代,JavaScript的作用域只有用全局作用域和局部作用域的说法.到了ES6时代,块级作用域的登场. 一.关于ES5时代 1.变量提升 说到js的…
js预解析的题像在做智力题一样有意思~ 预解析 预解析:在解释这行代码之前发生的事情——变量的声明提前了,函数的声明提前 console.log(num) ——未定义Num,结果是报错 var num; console.log(num)——结果是undefined console.log(num) var num = 10;——结果是undefined 注意:预解析分段,多对的script标签中如果函数名相同,互不影响 预解析就是变量的声明提前了,比如 console.log(num);var…
一.类的相关概念 (1).什么是类 具有同种属性的对象称为类,是个抽象的概念.比如说:汽车.人.狗.神: (2).什么是对象或实例 日常生活中的所有东西都是对象,是类的实例化.比如说:推土车是汽车的实例化,集数据属性和方法属性为一身的就是一个对象. 二.类属性.实例属性 (1).类属性 类属性从字面意义上说就是类所具有的属性,可以理解为一个类中的全局变量. (2).实例属性 类实例化成实例对象所具有的属性 举个例子: class School_cla: s_name = "清华" 这个…
创建数组方法一: var a1=new Array(5); console.log(a1.length); console.log(a1); //[] ,数组是空的 var a2=new Array(5,6); console.log(a2.length); console.log(a2); //[5,6] 创建数组二: var a1=[5]; console.log(a1.length); console.log(a1); //[5] var a2=[5,6]; console.log(a2.…
类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很大,晚上睡觉 2.继承顺序 在python2版本中多重继承有分两种继承循序 (1).一直往上找 .找到最高级的父类再重另外一个分支找,直到找到为止. (2).一直往上找,找到最高级父类的下一层后就不找了.从另外一个分支找,另外一个分支没找到最后才找最高级的父类. 再python3中只有第一种继承循序…
1.mousedown->mouseup依次触发后相当于click事件 2.除了mouseenter和mouseleave外,其它的鼠标事件都是冒泡的 3.mouseover和mouseout事件的event对象有一个relatedTarget属性(相关元素) mouseover的主要元素是获得光标的元素,相关元素为失去光标的元素,mouseout相反 ie8及更早的浏览器不支持该属性,但为mouseover提供了fromElement属性,为mouseout提供了toElement属性来达到相…
Date:类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串. Date中有很多过时的方法 @Deprecated过时的,可能在之后的版本删除构造方法: Date() : 表示创建对象的系统时间即当前时间(精确到毫秒值), 打印输出其实调用了toString方法. Date(long date) : 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历…
大多数面向对象的编程语言都支持类和类继承的特性,而JavaScript却不支持这些特性,只能通过其他方法定义并关联多个相似的对象.这个状态一直从ECMAScript 1持续到ECMAScript 5. 尽管一部分JavaScript开发强烈坚持JavaScript中不需要类,但由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性. ECMAScript 6中的类与其他语言中的还是不太一样,其语法的设计实际上借鉴了JavaScript的动态性 ECMAScript 5 中的近类…
传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人困惑! 如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成.构造函数示例: //函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数) function Person(name,age) { this.name = name; this.age=age…