日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

显式强制类型转换

發(fā)布時(shí)間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 显式强制类型转换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 日期顯式轉(zhuǎn)換為數(shù)字
  • +new Date; //1478845373322
  • javascript有個(gè)奇特的語(yǔ)法,即構(gòu)造函數(shù)沒(méi)有參數(shù)時(shí)可以不用帶()。不過(guò)最好還是使用ES5中新加入的?靜態(tài)方法:Date.now()。2. ~運(yùn)算符按位運(yùn)算符只適用于32位整數(shù),運(yùn)算符會(huì)強(qiáng)制操作數(shù)使用32位格式。這是通過(guò)抽象操作ToInt32實(shí)現(xiàn)的。ToInt32 首先執(zhí)行ToNumber 強(qiáng)制類(lèi)型轉(zhuǎn)換,比如“123”會(huì)先轉(zhuǎn)換為123,然后再執(zhí)行ToInt32。
    按位運(yùn)算符有6個(gè):?& 按位與?? ??| 按位或 ? ??^ 按位異或?? ??~ 取反?? ??>> 右移?? ??<< 左移
    但這嚴(yán)格來(lái)說(shuō)并不是強(qiáng)制類(lèi)型轉(zhuǎn)換(因?yàn)榉祷刂殿?lèi)型并沒(méi)有發(fā)生變化),但按位運(yùn)算符(例如 | 或~)和某些數(shù)字一起使用時(shí)會(huì)產(chǎn)生類(lèi)似強(qiáng)制類(lèi)型轉(zhuǎn)換的效果,返回另外的數(shù)字。例如 | 運(yùn)算符 0|x僅執(zhí)行ToInt32轉(zhuǎn)換。但以下特殊字符無(wú)法以32格式呈現(xiàn),因此ToInt32返回0。
  • 0|-0;//0
  • 0|NaN;//0
  • 0|Infinity;//0
  • 0|-Infinity;//0
  • ~ 首先將值強(qiáng)制類(lèi)型轉(zhuǎn)換為32位數(shù)字,然后執(zhí)行按位運(yùn)算符操作“非”(對(duì)每個(gè)字符進(jìn)行反轉(zhuǎn))。另外一種說(shuō)法,源自早期的計(jì)算機(jī)科學(xué)和離散數(shù)學(xué):~返回2的補(bǔ)碼。~x等同于 -(x+1);
  • ~5; //-6
  • 3. 字位截除 ~~~~中第一個(gè) ~ 執(zhí)行ToInt32并反轉(zhuǎn)字位,然后第二個(gè) ~ 再進(jìn)行一次字位反轉(zhuǎn),將所有的字位反轉(zhuǎn)為原值,最后得到的仍是ToInt32的結(jié)果。~~只適用于32位數(shù)字,且它對(duì)負(fù)數(shù)的處理與Math.floor(...)不同。
  • Math.floor(-88.9); //-89
  • ~~-88.9; //-88
  • ~~可以將值截除為一個(gè)32位整數(shù),x|0也可以。但最好是使用~~,出于運(yùn)算符優(yōu)先級(jí)的考慮。4. 顯式解析數(shù)字字符串解析允許字符串中含有非數(shù)字字符串,從左到右解析,遇到非數(shù)字字符則停止,而轉(zhuǎn)換不允許出現(xiàn)非數(shù)字字符,否則會(huì)失敗并返回NaN。
  • var a="56";
  • var b="56px";
  • Number(a); //56
  • parseInt(a); //56
  • Number(b); //NaN
  • parseInt(b); //56
  • ES5之前的parseInt32(...) 有一個(gè)坑,如果沒(méi)有第二個(gè)參數(shù)來(lái)指定轉(zhuǎn)換的基數(shù),它會(huì)根據(jù)字符串的第一個(gè)字符來(lái)自行決定基數(shù)。如果第一個(gè)字符是x或者X,則轉(zhuǎn)換為十六進(jìn)制數(shù)字。如果是0,則轉(zhuǎn)換為八進(jìn)制數(shù)字。ES5開(kāi)始,parseInt32(...) 默認(rèn)轉(zhuǎn)換為十進(jìn)制。5. 顯式轉(zhuǎn)換為布爾值 ?Boolean(...)一元運(yùn)算符!顯式的將值類(lèi)型轉(zhuǎn)換為布爾值,但同時(shí)會(huì)將真值轉(zhuǎn)換為假值,假值轉(zhuǎn)換為真值。所以顯式強(qiáng)制類(lèi)型轉(zhuǎn)換為布爾值常用的做法是!!,第二個(gè)!會(huì)將結(jié)果反轉(zhuǎn)為原值。
  • var a="0";
  • var b=[];
  • var c={};
  • !!a; //true
  • !!b; //true
  • !!c; //true
  • 下面這段代碼:
  • var a=56;
  • var b=a?true:false;
  • a 首先被強(qiáng)制轉(zhuǎn)換為布爾值才能進(jìn)行條件判斷,成為“顯式的隱式”。建議使用Boolean(a)和!!a來(lái)進(jìn)行顯式的強(qiáng)制類(lèi)型轉(zhuǎn)換。

    來(lái)自為知筆記(Wiz)

    轉(zhuǎn)載于:https://www.cnblogs.com/cheemon/p/6054550.html

    總結(jié)

    以上是生活随笔為你收集整理的显式强制类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。