最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript強(qiáng)制類型轉(zhuǎn)換(隱式轉(zhuǎn)換)示例代碼

 更新時(shí)間:2025年08月27日 08:34:48   作者:W-欣  
轉(zhuǎn)換為字符串是應(yīng)用程序中的常見(jiàn)操作,幾乎所有語(yǔ)言都提供了將任何類型轉(zhuǎn)換為字符串的通用接口,這篇文章主要介紹了JavaScript強(qiáng)制類型轉(zhuǎn)換(隱式轉(zhuǎn)換)的相關(guān)資料,需要的朋友可以參考下

一、核心轉(zhuǎn)換規(guī)則

  • 轉(zhuǎn)數(shù)字(Number)

    • null → 0

    • undefined → NaN

    • true → 1,false → 0

    • 字符串:空串 "" → 0,非數(shù)字字符串(如 "abc")→ NaN

    • 對(duì)象:先調(diào)用 valueOf() 或 toString() 得到原始值,再轉(zhuǎn)換

  • 轉(zhuǎn)字符串(String)

    • 數(shù)組 → 逗號(hào)分隔的字符串(如 [1,2] → "1,2"

    • 對(duì)象 → "[object Object]"

    • null → "null",undefined → "undefined"

  • 轉(zhuǎn)布爾值(Boolean)

    • Falsy 值(自動(dòng)轉(zhuǎn) false):0""、null、undefinedNaN、false

    • Truthy 值(自動(dòng)轉(zhuǎn) true):其他所有值(包括 []、{}、"0"

二、常見(jiàn)隱式轉(zhuǎn)換場(chǎng)景

1. 算術(shù)運(yùn)算符(+ - * /)

  • + 運(yùn)算符

    • 若任一操作數(shù)為字符串,執(zhí)行字符串拼接:

      "3" + 4;        // "34"(數(shù)字轉(zhuǎn)字符串)
      [] + {};        // "[object Object]"([] 轉(zhuǎn) "",{} 轉(zhuǎn) "[object Object]")
    • 否則嘗試轉(zhuǎn)數(shù)字:

      true + 1;       // 2(true → 1)
      null + 1;       // 1(null → 0)
  • 其他算術(shù)運(yùn)算符(- * /:強(qiáng)制轉(zhuǎn)數(shù)字:

    "5" - 2;    // 3
    "10" / "2"; // 5
    "abc" - 1;  // NaN

2. 比較運(yùn)算符( != > <)

  • == 的寬松相等(按優(yōu)先級(jí)轉(zhuǎn)換類型):

    1 == "1";     // true(字符串轉(zhuǎn)數(shù)字)
    true == 1;    // true(布爾轉(zhuǎn)數(shù)字)
    [] == 0;      // true([] → "" → 0)
    [null] == 0;  // true([null] → "" → 0)
    {} == "[object Object]"; // true(對(duì)象轉(zhuǎn)字符串)

    特殊規(guī)則

    • null == undefined 為 true(不轉(zhuǎn)換)

    • NaN 與任何值(包括自身)比較均為 false

  • > < 比較:優(yōu)先轉(zhuǎn)數(shù)字:

    "10" > 2;    // true("10" → 10)
    "abc" > 1;   // false("abc" → NaN,比較返回 false)

3. 邏輯運(yùn)算符(if && ||)

  • 條件判斷:自動(dòng)轉(zhuǎn)布爾值:

    if ("hello") { ... }  // true(非空字符串)
    if (0) { ... }        // false
  • || 和 &&:返回原值(非布爾值):

    "foo" || "bar";  // "foo"(truthy 返回第一個(gè)值)
    0 || "default";  // "default"(falsy 返回第二個(gè)值)

4. 對(duì)象參與的轉(zhuǎn)換

  • 對(duì)象先調(diào)用 valueOf()(默認(rèn)返回對(duì)象自身),再調(diào)用 toString()

    [] + 1;          // "1"([] → "" → 字符串拼接)
    {} + [];         // 0({} 被解析為空代碼塊,實(shí)際計(jì)算 +[] → 0)

三、避免陷阱的實(shí)踐建議

  • 使用 === 和 !==:嚴(yán)格相等避免隱式轉(zhuǎn)換:

    "1" === 1;    // false
    undefined === null; // false
  • 顯式轉(zhuǎn)換:主動(dòng)控制類型:

    Number("123");  // 123(顯式轉(zhuǎn)數(shù)字)
    String(123);    // "123"(顯式轉(zhuǎn)字符串)
    Boolean([]);    // true
  • 注意特殊值

    isNaN(+"abc");  // true(檢測(cè) NaN)
    Object.is(NaN, NaN); // true(ES6 精準(zhǔn)比較)

經(jīng)典面試題

console.log([] == ![]); // true
// 解析:
// 1. ![] → false([] 是 truthy,取反為 false)
// 2. [] == false → [] == 0 → "" == 0 → 0 == 0 → true

console.log({} + []); // "[object Object]"
// 解析:{} 和 [] 均轉(zhuǎn)字符串后拼接

如何是 a==1 && a==2 &&a==3為true

let a = {
    i:1,
    // valueOf:function(){
    //   return this.i++;
    // }
    toString:function(){
      return this.i++;
    }
  }
  if(a ==1 && a == 2 && a == 3){
    console.log('您好!');
  }

以下寫法會(huì)報(bào)錯(cuò)

let obj = {
        name:"Rahul",
        valueOf:function(){
            return this;
        },
        toString:function(){
            return this;
        }
       }
       console.log(1 + obj);

總結(jié) 

到此這篇關(guān)于JavaScript強(qiáng)制類型轉(zhuǎn)換(隱式轉(zhuǎn)換)的文章就介紹到這了,更多相關(guān)js強(qiáng)制類型轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宁化县| 温宿县| 杭锦后旗| 元谋县| 应用必备| 阿拉善盟| 霍邱县| 惠水县| 凤凰县| 沈丘县| 合阳县| 永平县| 社旗县| 白沙| 当雄县| 土默特右旗| 唐山市| 榆社县| 绥中县| 金秀| 太湖县| 新化县| 洪湖市| 高尔夫| 乌恰县| 张家口市| 山丹县| 漾濞| 稻城县| 盐亭县| 乐业县| 东乌珠穆沁旗| 泰安市| 濉溪县| 彭阳县| 墨江| 漳平市| 榆社县| 舞阳县| 新晃| 盐亭县|