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