js中一些怪異的寫法

2022-09-17 20:15:15 字數 609 閱讀 7826

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...