随笔分类 - js
摘要:function preCompile(a,c){ console.log(a); function a(){ alert(1); } console.log(a); var a=1; console.log(a); console.log(b); function b(){ } console.l
        阅读全文
                
摘要:1. isNaN(有漏网之鱼) null及空数组 及 只有一个数值的数组 isNaN({})//true isNaN(1) isNaN('1') isNaN('') //false isNaN( )//true isNaN(null)//false isNaN([])//false isNaN([1
        阅读全文
                
摘要:柯里化:一个函数原本有多个参数,只传入一个参数,生成一个新函数,由新函数接收剩下的参数; 偏函数:一个函数原本有多个函数,只传入一部分参数,生成一个新函数,由新函数接收剩下的参数 高阶函数: 一个函数A,参数是一个函数B,该函数A对这个参数B进行加工,得到一个函数,这个加工用的函数A就是高阶函数 为
        阅读全文
                
摘要:arr.length获取的是真实长度吗: var arr=new Array(10) console(arr.length) // 10 1. 以上代码获得的数组长度是10.其实数组实际不为undefined的长度是0啊。 var a = []; a['age'] = '18'; a['sex'] 
        阅读全文
                
摘要:看一个例子 var arr=[{name:'张三'},{name:'李四'}]; var obj={name:'张三'}; for (var i in arr){ console.log(i); //0 1 数组的下标 } for (var i in obj){ console.log(i) //n
        阅读全文
                
摘要:利用冒泡的原理,将子元素的事件绑定到父元素上。 捕获和冒泡过程图 捕获:由window从上到下,到事件触发元素 冒泡:由事件触发元素到从下到上,到window addEventListener的第三个参数为false(默认值),则页面是在冒泡阶段处理绑定事件 obj1.addEventListene
        阅读全文
                
摘要:XSS:跨站请求攻击 是一种跨站执行的脚本,也就是javascript脚本,指的是在网站上注入我们的javascript脚本,执行非法操作 预防: 前端替换关键字。例如<替换为 < (更推荐后端替换,因为前端影响性能,只有浏览器,没有服务器,js执行效率低) XSRF(csrf):跨站请求伪造
        阅读全文
                
摘要:先看一段代码 console.log('打印'+1); setTimeout(function(){ console.log('打印'+2); }) new Promise(function(resolve,reject){ console.log('打印'+3); }).then( console
        阅读全文
                
摘要:new共经过了4个阶段 1.创建一个空对象 2.设置原型链 把 obj 的__proto__ 指向构造函数Func的原型对象 prototype,此时便建立了 obj 对象的原型链: obj->Func.prototype->Object.prototype->null 3.让Func中的this指
        阅读全文
                
摘要:1.typeof typeof只能判断区分基本类型,number、string、boolean、undefined和object,function; typeof 0; //number; typeof true; //boolean; typeof undefined; //undefined; 
        阅读全文
                
摘要:1. 对于基本数据类型 其值在内存中占据着固定大小的空间,并被保存在栈内存中。当一个变量向另一个变量复制基本类型的值,会创建这个值的副本,并且我们不能给基本数据类型的值添加属性。其为深拷贝。 2. 对于引用类型 浅拷贝:只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存; 改变一个对象
        阅读全文
                
摘要:call、apply、bind方法的共同点和区别:apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文(函数的每次调用都会拥有一个特殊值——本次调用的上下文(context
        阅读全文
                
摘要:1.forEach遍历: function sum(arr) { var result = 0; arr.forEach(function(item,index) { result += item; }); return result; }; 2.reduce function sum(arr) {
        阅读全文
                
摘要:创造对象实例 访问对象属性: 属性名中若包含可能会导致语法错误的字符,比如空格或者保留字,要用方括号访问!不能用点表示法访问。 点表示法比较常用; 属性类型 1.数据属性 有4个描述其行为的特性 writable,(能否修改属性值) configurable(定义对象的属性能否delete), en
        阅读全文
                
摘要:下面的就是true 布尔类型与其它任何类型进行比较,布尔类型将会转换为number类型。 Number([])返回0所以第二题为true Number转换类型的参数如果为对象返回的就是NaN,那么Number({})返回的就是NaN。 通过Object.prototype.toString.call
        阅读全文
                
摘要:void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具语义 console.log(void 0); // undefined console.log
        阅读全文
                
摘要:1.检测数组 ①Instanceof: 它假定只有一个全局执行环境,若网页中包含多个框架,则存在多个不同的全局执行环境,则Instanceof不能正确检测; ② Array.isArray() 无论几个全局执行环境都可以; 2.转换方法 ③ toString() 会返回数组的每个值拼接起来的字符串(
        阅读全文
                
摘要:闭包函数:声明在一个函数中的函数,叫做闭包函数。 闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。 闭包是指一个函数,其可以调用另一个函数作用域中的变量; 闭包只能取得包含函数中任何变量的最后一个值,如: 实例1 function create
        阅读全文
                
摘要:6种继承方式: 1.原型链继承2.借用构造函数(经典继承)3.组合继承4.原型式继承5.寄生式继承6.寄生组合式继承 1.原型链: 缺点:所有实例会共享属性 新实例无法向父类构造函数传参 function FirstProto() { this.name = 'xiaoming'; this.col
        阅读全文
                
摘要:寄生式继承 函数不能复用,降低效率,但新对象不仅具有person的属性和方法,还有自己的方法。 寄生组合式继承 计生组合式继承是引用类型最理想的继承
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号