js小知识 双叹号(!!)】的更多相关文章

!!:一般用来将后面的表达式强制转换为布尔值(boolean):true或者false; avascript约定规则为:  false.undefinded.null.0.”” 为 false  true.1.”somestring”.[Object] 为 true 所以: !false    !undefinded    !null    !0     !""    为true !!false   !!undefinded   !!null   !!0    !!"&quo…
转自:JavaScript中双叹号(!!)作用 经常看到这样的例子: var a: var b=!!a; a默认是undefined.!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利. !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如: a=parseInt…
一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用.性能比较见此. var foo = (12.4 / 4.13) | 0;//结果为3 var bar = ~~(12.4 / 4.13);//结果为3 还有一个小技巧,就是!!2个叹号,可以讲一个值,快速转化为布尔值.你可以测试一下! var eee="eee"; alert(!!eee) 返回的是true,也就是说任何一个值前…
前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js解析引擎: 引擎的定义: 什么是js解析引擎?简单的说是就能够读懂javascript代码的的平台,如你写一段代码 var a=1;var b=1;var c=a+b;引擎做的事情就这一段代码执行成我们想要的结果,这就是引擎要做的事情. 上面据说的和C/C中的编译过程很像,但是js和C/C有所不同,…
JS的连续赋值和曾经出现的怪异情况 let a=1; let b=a=3; 如上的真实赋值过程 => a=1 => a=3 => b=3 => 一般来说,等号是从右向左赋值的 于是问题来了 var a={n:1}; var b=a; a.x=a={n:2}; console.log(a) // {n:2} console.log(b) // {n:1,x:{n:2}} console.log(a.x) // undefined console.log(b.x) // {n:2} a…
在iframe 页面获取父级页面的 html var obj = window.parent.document.getElementById('modaliframe'); 解决Jquery 的在一个页面的冲突问题 <!-- 引入 jquery 1.8.0 -->     <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></s…
向数组结尾添加元素高效方法: var arr = [1,2,3]; arr[arr.length] = 4 头部: var a = [1,2,3]; a.concat(4,5); // 1,2,3,4,5 中间: splice(index,howmany,arr1,arr2,...); //index插入的位置,howmany删除数量,arr1...添加项目 检测对象是否存在属性: hasOwnPrototype :只在本身有此属性时返回 true in :不区分属性来自自身还是继承自原型 严格…
angular-watch.html 代码如下: <script> var app = angular.module('app',[]); app.controller('ctrl',function($scope){ $scope.init = { price : ,//单价 count : , //数量 money : //运费 }; $scope.a = ; $scope.$watch('init.count',function(newVal,oldVal){ console.log(n…
查看zepto源码时,看到它的数组去重写法非常简单.下面是代码 var uq = function(array){ return [].filter.call(array,function(item,idx){ return array.indexOf(item) == idx }) }uq([1,3,5,1,2,5])输出: [1,3,5,2] 这里用到了array filter方法. 下面再简单介绍一下 filter方法的使用. filter() 方法创建一个新数组, 其包含通过所提供函数实…
1 上传图片:html代码 <input id="image" type='file' name='myFile' size='15' onchange="showPicture(this)" /> <img id="111" src="img/1.jpg" width="133" height="200" /> js代码: <script type=&qu…