JS解析
yihuoZhou
每天进步一点
展开
-
JS中的匿名函数和闭包
JS中的匿名函数和闭包原创 2017-02-04 17:30:22 · 571 阅读 · 0 评论 -
js哪些情况会出现隐式类型转换
1. 数字运算:“+”:将表达式的值转换为String(仅当有一个是String类型);“-”:将表达式的值转换为Number;2. “.” 被隐式转换为对象;3. “if语句” 判断的条件表达式会被隐式转换为Boolean类型4. “==”JS的非严格匹配时,会进行隐式类型转换原创 2017-05-08 22:43:54 · 4342 阅读 · 0 评论 -
js对象的浅拷贝和深拷贝
对象复制分为深拷贝和浅拷贝。 浅拷贝只会将对象中的各个属性依次复制,而不会递归复制,因为js存储对象是存地址的,所以会造成复制对象和原对象指向同一内存地址。 浅拷贝的代码简单实现:var obj = { a:1, arr: [2,3] };var shadowObj = shadowCopy(obj);function shadowCopy(src) { var dst = {};原创 2017-05-08 22:29:03 · 1163 阅读 · 0 评论 -
js实现类型判断,二分查找与日期格式化
1.类型判断函数myType用于根据输入参数返回相应的 类型信息。 语法如下: var str = myType (param); 使用范例如下: myType (1); 返回值: “number” myType (false); 返回值: “boolean” myType ({}); 返回值:原创 2017-05-22 10:35:22 · 557 阅读 · 0 评论 -
js逻辑操作符(!,&&,||)与运算符优先级
js中的逻辑操作符包括!(逻辑非),&&(逻辑与),||(逻辑或), !逻辑非:对一个操作数的布尔值取反,可通过!!取得操作数的布尔值类型,如下代码(空数组的布尔值为true,空字符的布尔值为false)console.log(!0);//trueconsole.log(!!0);//falseconsole.log(![]);//falseconsole.log(!![]);//true原创 2017-04-24 11:05:55 · 8752 阅读 · 1 评论 -
在变量作用域方面,函数声明和函数表达式有什么区别?
函数声明提升,在函数声明时定义好作用域; 函数表达式,只是变量名提升,随着变量的改变,作用域也改变。 词法环境with,和try…catch…不会影响函数声明的变量作用域,但会影响函数表达式的变量作用域原创 2017-05-13 11:45:14 · 587 阅读 · 0 评论 -
js闭包中this的指向问题及三种解决方法
下面是一个问题,对象方法中定义的子函数,子函数执行时this指向哪里? 三个问题: (1)以下代码中打印的this是个什么对象? (2)这段代码能否实现使myNumber.value加1的功能? (3)在不放弃helper函数的前提下,有哪些修改方法可以实现正确的功能?var myNumber = { value: 1, add: function(i){原创 2017-05-11 22:37:34 · 5803 阅读 · 0 评论 -
JS如何判断空对象,及typeof和instanceof的区别
ECMAScript中有5种基本数据类型,分别为Undefined,Null,Boolean,Number,String。另外还有一种复杂数据类型Object,Object本质上是由一组无序的名值对组成的。原创 2017-02-28 21:48:08 · 3672 阅读 · 0 评论 -
JS中的块级作用域
JS中是没有块级作用域作用域这个概念,为实现块级作用域可通过闭包的形式实现,下面通过一个例子来说一下JS中的块级作用域。function outputName(count){ for (var i = 0; i <count; i++) { console.log(i); } } cons原创 2017-02-14 17:10:06 · 1514 阅读 · 0 评论 -
车牌号,手机号正则表达式
1.利用正则表达式检查车牌输入。在jQgrid中对编码规则设置 {name : ‘carNumber’,index:’carNumber’,width : 90,align : “left”,editable:true,editoptions:{size:10},editrules:{required:true,custom:true,custom_func:carNumCheck}}, //车原创 2017-02-12 16:22:31 · 1456 阅读 · 1 评论 -
跨浏览器下确定窗口大小
跨浏览器得到窗口大小,可以让整个页面铺满浏览器可见视图大小,可通过设置CSS中的元素属性width:100%;height:100%来解决,但最近做了一页面,头部的高度已经确定,想要实现除头部以外页面铺满剩下的可见视图大小,通过设置width:100%,可以让宽度铺满整个屏幕原创 2017-02-27 18:30:22 · 360 阅读 · 0 评论 -
js原型链的形式实现类继承
js中虽然没有类的概念,但可以通过构造函数加原型链的方式实现类的继承。下面是一道简单的题目 请使用Js代码写出一个类继承的模型,需包含以下实现: 定义父类和子类,并创建父类和子类的属性和方法 子类继承父类的属性和方法 在创建子类对象时,调用父类构造函数//父类构造函数function Person(name,cardid){ //父类属性 t原创 2017-05-20 11:26:52 · 1204 阅读 · 0 评论