javascript 第七天---運算符

運算符

+ - / % **

  1. 在加號 任意一側 出現了字符串的時候 是字符串拼接
  2. % 是取餘數 var a =7;a =a%2 console.log(a);結果是1,即7除2的餘數
  3. ** 平方

賦值運算

= += -= *= /= %= **=

  1. var a = 7;a+=7代表意思是 a=a+7 算數運算不存在分數
<body>
  <div id="box">
    <p class="on"></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
  </div>
</body>
<script>
  var op = document.getElementsByTagName("p");
  var index = 0;
  document.onclick = function () {
      op[index].className = "";
      index++;
      <!--if(index>op.length-1){-->
      <!--   index = 0;-->
      <!--}-->
      index = index%op.length;//取餘數  代替了if判斷
      op[index].className = "on";
  }
</script>

1%5 = 1 ; 上面代碼爲了實現點擊後,p的背景顏色發生改變,用了判斷

比較運算

> < == != >= <= === !==
var a =10; b="6"; console.log(a>b);結果是true,

  1. < == 數值和“數字”做比較 有一個類型轉換

  2. var a ="10"; b="6"; console.log(a>b); 結果是false;如果說 字符串做比較 按照ASCII碼錶順序挨個作對比

邏輯運算符

&& 且 || 或 ! 非

兩側都是布爾值的情況

  1. && 兩側都是true 返回true
  2. // 兩邊都是假 返回假 其他情況返回真
var a =1>2||3>2&&2>1;
console.log(a);//結果是true
  1. && 運算順序優先級高於||

兩側不是布爾值

  1. && 遇到假就停止 並返回當前值 到頭之後返回最後一個值
  2. || 遇到真就停止並返回當前值 到頭之後返回最後一個值
  3. ! 取到的是布爾值
  4. 我們在控制流程的時候 通常會用到 邏輯運算的短路特性
var a = 5&&0&&6;
console.log(a);

結果是0,因爲0是假

var a=5&&document.getelementsbytagname("p")&&6;
console.log(a);

結果是6,document.getelementsbytagname("p")雖然沒找到 但是返回值是一個空的類數組 是真的

var a=5&&document.getelementbyid("box")&&6;
console.log(a);

結果是是null document.getelementbyid("box")返回值是null

var b=0||4||5;
console.log(b);

結果是0

var b=1||2&&5;
console.log(b);

結果是1,先運算 && 結果是5,再||結果是1

var b=""||2&&0;
console.log(b);

結果是0,先&& 結果是0,再||,都是假 爲0

var c="hahah";
c!=c
console.log(c);

結果是false

var n=6;
3>n&&fn();
function fn(){
    console.log(123);
}

函數不會執行,

顯示類型轉換 平時只做字符串---數值轉換

  1. number(); 不會改變原有數據類型 而是把轉換之後的結果 返回出來
<script>
    var a ="123";
    var b = number(a);
    console.log(a);
    console.lod(b);
</script>

第一個結果是“123” 第二個是123

var a="123b";
var b=number(a);
console.log(b);
console.log(typeof b);

第一個結果是NaN,另一個是number

  1. 數值 並不是所有類型的數據就是數 還有一個不是數 是NaN
console.log(NaN===NaN);

結果是false

var a =NaN;
console.log(a===a);

結果是false,即便是它自己也不等於自己

var a=true;
var b=number(a);
console.log(b);

結果是1 通電斷電 1 0 高級語言:機器不能直接看懂 false會變成0

var a=[];
var b=number(a);
console.log(b);

結果是0 空數組被解釋爲0 如果按照數學邏輯是正確的數 那麼會轉換成數 數組中有多個值 被解釋爲nan

var a=["123"];
var b=Number(a);
console.log(b);

結果是123

var a=["123" "1345"];
var b=Number(a);
console.log(b);

結果是NaN

var a=null;
var b=Number(a);
console.log(b);

結果是0

其他顯示類型轉換

  1. String();和alert()表現一致 所有數據類型都能轉變成字符串
  2. Boolean();
var a="";
var b=!!a;//var b =boolean(a);效果一樣
console.log(b);

結果是false 如何判斷數據類型爲NaN

var a =123;
console.log(isNaN(a));
  1. isNaN 返回布爾值, true 就是NaN

parseInt parseFloat 用於把寬高帶px解釋爲數字 toFixed(2) 保留幾位小數 會四捨五入

parseInt 分析 整數 ;parseFloat小數數
強制類型轉換 會從空格之後開始 左往右進行解釋 直到遇到不符合數學邏輯的字符爲止 解釋爲字符串,如果空格在中間會被認爲是字符串

var a ="00100";
console.log(parseInt(a));

結果是100

var a ="00.100";
console.log(parseInt(a));

結果是0

var a ="100px";
console.log(parseInt(a));

結果是100

var a ="100px";
console.log(number(a));
console.log(parseInt(a));

第一個結果是NaN,第二個結果是100

var a ="4/8";
console.log(parseInt(a));

結果是4 遇到/會停止

var a ="- 4/8";
console.log(parseInt(a));

結果是NaN -是啥?不是數

var a =2.2222221355666;
console.log(a);

結果不會全部打印出來,小數被轉換成二進制之後 可能無限循環 損失精度 不要用小數做判斷

var a ="[]";
console.log(parseInt(a));

結果是nan parseInt會把空數組解釋爲NaN

var a ="["123"]";
console.log(parseInt(a));

結果是123

var a ="["123","12355"]";
console.log(parseInt(a));

結果是123 數組中有多個值 只解釋第一個值

var a =2.2222221355666;
console.log(a.tofixed(2);代表取小數點後兩位  **數值類型變爲字符串,會四捨五入**

隱式類型轉換

  1. 其他類型轉字符串 +”“
var a =null;
a = a+"";
console.log(a);

結果是null

  1. 其他類型轉數值 用*1 /1 null是0 undefined是nan
var a ="123";
a = a*1;
console.log(a);
var a =undefined;
a = a/1;
console.log(a);

結果是NaN

  1. 其他類型轉布爾 !!
var a="";
var b=!!a;//var b =boolean(a);效果一樣
console.log(b);
var a =undefined;
a = a++;//a=a+1;
console.log(a);

結果是NaN

  1. a++ 和 a=a+1不一樣 a++會有類型轉化
var a ="123";
a = a++;//a=a+1;
console.log(a);

第一種情況是124 第二種是1231

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章