如何区分JS中的this?!】的更多相关文章

console.log(typeof null);//object console.log(typeof undefined);//undefined console.log(typeof "");//string console.log(typeof 0);//number console.log(typeof false);//boolean 在程序语言定义的各种各样的数据类型中,我们都会为其定义“空值”或“假值”,我们在标题里已经列出了js中的所有空值和假值,出来boolean本…
在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库 字段的空值DBNull,boolean类型的假值false等等.在JavaScript中也有很多种的"空值"和"假值",那么它们都有什么共同点和 不同点呢? 其实标题里面我已经列出了JavaScript中所有的"空值"和"假值",除了boole…
->我们一般只研究函数执行的时候里面的this->this是谁和当前的函数在哪执行和在哪定义没有半毛钱的关系 1)看函数执行的时候,函数名之前是否有".",有的话"."前面是谁this就是谁,没有的话this就是window oDiv.onclick=function(){ //匿名函数中的this->oDiv fn();//fn函数中的this->window }; [].slice(0);//->slice中的this是[] [].…
实现功能:在使用cocosjs制作游戏过程中,很多东西都可以重复使用,例如菜单栏等等.今天尝试写了一个自定义的Js文件用作菜单方便以后使用. 将菜单按钮,以及触发事件作为参数生成一个层 直接在游戏中使用. 因此,就需要在封装时候判断参数类型,以减少不必要的麻烦. -------- 主要:typeof.instanceof. constructor. prototyp 如何判断js中的类型呢,先举几个例子: var a = "iamstring."; var b = 222; var c…
一.自我理解 简单来讲就是:深拷贝层层拷贝,浅拷贝只拷贝第一层. 在深拷贝中,新对象中的更改不会影响原对象,而在浅拷贝中,新对象中的更改,原对象中也会跟着改. 在深拷贝中,原对象与新对象不共享相同的属性,而在浅拷贝中,它们具有相同的属性. 举个栗子:存在A和B两个数据,假设B复制了A,当修改A时,如果B跟着A变化了,则是浅拷贝:如果B不受A的改变而改变,则是深拷贝 let A = [0,1,2] let B = A console.log(A === B); A[0] = 3 console.l…
核心:JS中的script是分段执行的. <script> var i = 10; </script> <script> alert(i); </script> 上面的例子中,弹出结果10.因为在之前script语句段定义的变量和函数可以再其他script语句段中使用.在一个js程序中,可以有多个script语句段,那么它们如何工作呢? script执行过程: 1.读入第一个代码段 2.编译(声明变量,声明函数,语法检查,语义检查,代码优化,分析并得到代码书…
很多人,包括我,受书本知识消化不彻底的影响,认为 JS 中参数有两种传递方式:数字.字符串等按值传递:数组.对象等按地址(引用)传递.对此种观点,我们要谨慎. var v1 = [] var v2 = {}; var v3 = {}; function foo(v1, v2, v3) { v1 = [1]; v2 = [2]; v3 = {a:3} } foo(v1, v2, v3); alert(v1); // 空白 alert(v2); // [object Object] alert(v3…
JS中的基本数据类型: String .number.null.boolean.undefined.object.symbol(ES6) 1.  利用typeof运算符时其中只有null是异常的,typeof(null)=object,所以在判断变量类型是否为null时要注意.同时利用typeof时对于没有声明的变量是不会报错的,返回值为undefined.全局变量和函数变量在没有声明时使用是会报错的,但是在对象中使用没有定义的属性是不会报错同样返回的是undefined.Function变量是…
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其进行操作(当然赋值除外),会有"undefined"提示null 值指出一个变量中没有包含有效的数据. 产生 null 的原因是:对一个变量显式地赋值为 null. 包含 null 的表达式之间的任何操作. Boolean 表达式一个值为 true 或者 false 的表达式.如果需要,非…
这次还是prototype.js 和 jQuery.js冲突的问题,前面说到过解决办法http://www.cnblogs.com/Joanna-Yan/p/4836252.html,以及上网说的大部分方法都只能解决$的冲突问题.我先引入了prototype.js 再引入jQuery.js,在用了jquery中的$,然后来用prototype中的ajax的时候,ajax的方法就不启作用了. 最后改为了用 jQuery.js中 ajax .现在记录下两者ajax调用的区分: <%@ page la…