1、var s = (1==0)||
因為1==0是false,按照或運算規則,繼續運算,得到 ,所以s=
同理 var s = (1==1)||,這時1==1為true,不再繼續運算下去,所以s=true;
或運算的結果並不直接的等於true或者false,而是第乙個可以判斷為true的值;
var s=(0||2||[1,2]),0的boolean 運算值是false,所以繼續,2的boolean運算值是true,停止運算,並把2賦值給s
原來看到很多if(a表示式||b表示式)以為或運算結果直接就是false或true,大大的誤解
&&運算子的結果也是如此
2、if(判斷表示式)(語句b) //這個目前我還沒搞清楚
語句b被順序執行,但為什麼加括號不清楚
要說的是a中包含return語句會報錯:return not in function
eg:if(0)(alert('hello world'));
這樣寫會報 return not in function錯,解決方案是將上句寫在function中,如下:
(function()(alert('hello janey'))})();
為什麼這樣不清楚
JS原生的一些寫法
今天在寫頁面的時候,因為不想使用jquery了,所以想用原生js寫一下,發現原生的js都差不多忘記了,所以來補習一下 slice 如果接收的是負數,會將它字串的長度與對應的負數相加,接收的是起始位置和結束位置 不包括結束位置 substring 以兩個引數中較小乙個作為起始位置,較大的引數作為結束位...
js中一些有趣的現象
個人小站點 1,js中關於函式提公升 在es5中 function f function f 結果為i am inside 因為在es5中存在變數 函式提公升,重複宣告,後面的覆蓋前面的,所以最終函式是function f 在es6中用let宣告就會產生塊級作用域,不用立即執行匿名函式了 2.ale...
IMD中一些JS方法總結
1,日期格式化 如格式成2013 12 27 15 30,new date format yyyy mm dd hh mm ss 這種格式在safari瀏覽器上會出問題,可用.format yyyy mm dd hh mm ss 代替 1 date.prototype.format function...