-
let、const 和 var 的区别
let、const 是 ES6 新增的两个声明变量的命令,用法类似于于 var。块级作用域众所周知,在 ES5 当中,只有全局作用域和函数作用域。那为什么需要块级作用域呢? 场景一:内层同名变量会覆盖外层变量 var str = "hello,world!"; function fun() { console.log(str); var str = "你好,世界"; } fun(); // undefined var str = "hello,world!"...…
-
怎么遍历对象、数组,怎么排序数组
对象遍历forin 可以遍历自身和原型上的所有可枚举对象const obj = { name:'name', age:15, [Symbol('aa')]:'symbol' // Symbol}// 添加一个不可枚举属性Object.defineProperties(obj,{ class:{ value:'三年级一班', enumerable:false }})// 给obj的原型添加属性Object.defineProperties(obj.__proto__,...…
-
判断数据类型的几种方法
typeof适用于判断基本数据类型 对于基本类型,除 null 以外,均可以返回正确的结果。 对于引用类型,除 function 以外,一律返回 object 类型。 对于 null ,返回 object 类型。 对于 function 返回 function 类型 const str = "str" typeof str // "string"instanceof通过原型链判断A是否为B的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回...…
-
Object
1. object object 数值属性会自动转化成字符串 在使用字面量表示定义对象的时候,并不会实际调用Object构造函数 object是基础类型,所有引用类型都继承了它的基本行为2. 创建objectvar obj = {}var obj = new Object()Object.create() Object.create(proto,[propertiesObject]) proto 没有的话传入null,原型为null, {} === Ob...…
-
实现addClassName、removeClassName方法
classlist不考虑ie浏览器let div = document.getElementById('div1');div.classList.add("class2");div.classList.remove("class1");setAttributeconst divDoc = document.getElementById('div1')let classVal = divDoc.getAttribute('class')// 删除class1classVal = classV...…
-
变量提升/函数提升
变量提升 var声明的变量提升声明,但是不提升赋值函数提升 函数声明整体提升,函数表达式不提升当变量名相同,函数提升大于变量提升为什么会有变量函数提升在预编译时,js编译器会至上而下检查var声明变量,并把它绑定到全局作用域上。其次检查函数声明,绑定到全局作用域…
-
给一个按钮绑定点击事件有哪些方法
onclick <button onclick="btn()"></button> function onclick(){ }addEventListener <button id="btnClear" >清空</button> <script> document.getElementById('btnClear').addEventListener('click',function(){ ...…
-
JS获取指定id、class元素
根据id获取元素 document.getElementById(id)根据class获取元素 document.getElementsByClassName()querySelector()和querySelectorAlI()querySelector()方法用于返回指定选择器的第一个元素对象。querySelecorAlI()方法用于返回指定选择器的所有元素对象集合。querySelector(‘.class’)querySelector(‘#id’)…
-
栈、队列和线性表
栈先进后出的结构队列先进先出…
-
单例内置对象
Globalglobal对象是js中比较特殊的对象,不能直接被访问到。全局作用域中通过 var 创建的变量和函数都会成为global的属性。 全局执行上下文绑定的对象就是global对象 isNaN()、parseInt()、parseFloat() 等对象都是global的属性 eval()方法是一个完整的js解释器 undefined、NaN、Infinty等都是global对象的属性 所有原生引用类型构造函数 如:Object 和 Function ,都是Global对象的...…