數據類型轉換中的一些特殊情況(JY06-JavaScript)

来源:http://www.cnblogs.com/maginapp/archive/2016/07/29/5719696.html
-Advertisement-
Play Games

1.字元串的不可變性 字元串定義了後,會一直占據記憶體空間,企鵝該處記憶體空間(棧)不可被重新賦值。 2.短路運算 ||、&& 二元運算符,返回參與運算的操作數的原值(原數據類型和原數據), 運算結束後,返回導致運算結束的那個操作數。 3.三元運算符 code1?code2:code3; 與if-els ...


1.字元串的不可變性  

  字元串定義了後,會一直占據記憶體空間,企鵝該處記憶體空間(棧)不可被重新賦值

2.短路運算

  ||、&& 二元運算符,返回參與運算的操作數的原值(原數據類型和原數據)

  運算結束後,返回導致運算結束的那個操作數。

3.三元運算符

  code1?code2:code3;   與if-else 不同:

  返回code2或code3的值----code2,code3   都可以空的{}代替;

                   不能寫break,continue。

4.NaN

  NaN !=NaN,

  任何NaN參與的數學運算,其結果都是NaN

  有NaN參與的條件表達式:    比較運算符 >/>=/</<=/==/===     運算結果為false

                     !==/!=         運算結果為true

  

 1 <script>
 2     var a;
 3     console.log(Boolean(NaN>=4));
 4     console.log(Boolean(NaN<4));
 5     console.log(Boolean(NaN=4));
 6     console.log(Boolean(NaN==4));
 7     console.log(Boolean(a=4));
 8     console.log(NaN);
 9     console.log(a);
10     if(NaN==NaN){
11         a = "NaN==NaN";
12     }
13     var b;
14     if(NaN!==NaN){
15         b = "NaN!=NaN";
16     }
17     console.log(a+"\n"+b);
18 </script>
View Code---NaN特點演示

5. JS 簡單數據類型的轉換---特殊情況演示

   數據:0,“”,false,null,undefined,"123abc"等

  1 <!DOCTYPE html>
  2 <html>
  3 <head lang="en">
  4     <meta charset="UTF-8">
  5     <title></title>
  6     <style>
  7         div {
  8             line-height: 24px;
  9             margin: 0;
 10             padding: 0;
 11         }
 12         .one {
 13             width: 920px;
 14             position: absolute;
 15             left: 50%;
 16             top: 50%;
 17             margin-left: -460px;
 18             margin-top: -240px;
 19         }
 20         .all {
 21             float: left;
 22             border: 2px solid #000000;
 23         }
 24         .all-top {
 25             font-size: 20px;
 26             font-weight: bold;
 27         }
 28         .all-bottom {
 29             line-height: 48px;
 30             font-size: 16px;
 31         }
 32         .details {
 33             float: left;
 34             border: 2px solid #000000;
 35             line-height: 24px;
 36             margin-left: -2px;
 37         }
 38         .details:hover {
 39             position: relative;
 40             border: 2px solid #ff0000;
 41         }
 42         .line-long {
 43             border-top: 2px solid #000000;
 44             height: 0;
 45             width: 908px;
 46         }
 47         .line-short {
 48             border-top: 2px dashed #000000;
 49             height: 0;
 50             width: 742px;
 51             margin-left: 166px;
 52         }
 53     </style>
 54     <script>
 55         document.write("<div class='one'>");
 56         function f1() {
 57             return typeof res[res.length - 1];
 58         }
 59         var arr = [0, "", false, null, undefined, NaN, 6.66, -9, "abc124", "-12.23abc23", "qwer", "s s"];
 60         document.write("<div class='all'><div class='all-top'>" + "&nbsp;&nbsp;原數據及類型" + "</br>" + "轉換方法&nbsp;&nbsp;</div>" + "<div class='all-bottom'>" + "+" + "</br>" + "Number()" + "</br>" + "parseInt()" + "</br>" + "parseFloat()" + "</br>" + "\"\"" + "</br>" + ".toString" + "</br>" + "String()" + "</br>" + "!!" + "</br>" + "Boolean()" + "</br>" + "</div></div>")
 61         for (var i = 0; i < arr.length; i++) {
 62             switch (true) {
 63                 case arr[i] === "":
 64                 {
 65                     var res = ['""'];
 66                     break;
 67                 }
 68                 default :
 69                 {
 70                     var res = [arr[i] + ""];
 71                 }
 72             }
 73             res[res.length] = typeof arr[i];
 74             res[res.length] = +arr[i];
 75             res[res.length] = f1();
 76             res[res.length] = Number(arr[i]);
 77             res[res.length] = f1();
 78             res[res.length] = parseInt(arr[i]);
 79             res[res.length] = f1();
 80             res[res.length] = parseFloat(arr[i]);
 81             res[res.length] = f1();
 82             res[res.length] = arr[i] + "";
 83             res[res.length] = f1();
 84             if (i == 3 || i == 4) {//null 和undefined沒有.toString()方法,導致報錯
 85                 res[res.length] = "報錯";
 86                 res[res.length] = "報錯";
 87             } else {
 88                 res[res.length] = (arr[i]).toString();
 89                 res[res.length] = f1();
 90             }
 91             res[res.length] = String(arr[i]);
 92             res[res.length] = f1();
 93             res[res.length] = !!arr[i];
 94             res[res.length] = f1();
 95             res[res.length] = Boolean(arr[i]);
 96             res[res.length] = f1();
 97 
 98             var resString = res.join("<br>");
 99             document.write("<div class='details'>" + resString + "</br>" + "</div>");
100         }
101         var j = 22;
102         for (var i = 0; i < 9; i++) {
103             document.write("<div class='line-short' style='margin-top:" + j + "px'></div>")
104             document.write("<div class='line-long' style='margin-top:" + j + "px'></div>")
105         }
106         document.write("</div>");
107     </script>
108 </head>
109 <body>
110 </body>
111 </html>
View Code


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習完了簡單工廠模式以後,感覺可以用於解決大多數多演算法選擇的問題了,接下來看一個新的例子,也是借用《大話數據結構》一書的例子,要實現的是一個商場促銷的計算軟體,輸入商品的單價和數量,還有銷售策略(如打折,返現),然後計算出總的價格。 首先可以從這個問題中抽象出兩個演算法類,一個是打折演算法類,需要提供打 ...
  • 基於 Angularjs&Node.js 雲編輯器架構設計及開發實踐 ...
  • 一、概述 Redis3.0版本之後支持Cluster. 1.1、redis cluster的現狀 目前redis支持的cluster特性: 1):節點自動發現 2):slave->master 選舉,集群容錯 3):Hot resharding:線上分片 4):進群管理:cluster xxx 5) ...
  • 畢業到轉行以來有一年時間了,成為一名程式猿也有大半年了,之前在新浪上隨便寫寫簡單的學習過程,感覺不夠像那麼回事,現在接觸前端也有一段時間了,也做過幾個項目,認識到可以拓展的實在太多了,希望從這裡起步,踏踏實實,記錄好點點滴滴。 HHL Gulp使用步驟: 1 安裝node(npm),全局安裝,我使用 ...
  • 昨天公司說官網的登陸註冊每次要跳轉到另一個界面,能不能做一個簡單的,在界面彈出一個框框登陸,我想了想做了這麼一個案例,大家來看看成不成 貼上代碼,實現了在同一個彈出窗上載入了登陸註冊功能!可自由點擊!當然樣式醜了一些!還請見諒!demo在下麵 1這裡是html內容 2接下來是樣式css 後面更上js ...
  • 收拾心情,學習學習js!總結下自己的學習所得! 現有的有三種方法可以獲取元素的節點,分別是通過元素ID,通過標簽名和類名來獲取的 1.GetElmentById:將返回一個與那個有給定ID屬性的值的元素節點對應的對象,方法只有一個參數,元素的id屬性的值必須放在單引號或雙引號里 2.GetElmen ...
  • 一、H5有哪些新特性,移除了哪些元素?如何處理h5新標簽的瀏覽器相容性問題,如何區分html和html5 1. html5不在是SGL(通用標記語言)的一個子集,而包含了:圖像、位置、存儲、多任務等功能 2. 新增的圖像為canvas類,媒體回放video和audio元素;本地離線存儲localSt ...
  • 眾所周知,在jQuery語法中,$符號是jQuery的簡寫方式。但在某些情況下,可能需要在同一個頁面引入其他javascript庫(比如Prototype)。因為$簡短方便,很多的庫也是使用$符號。為了避免名稱衝突,jQuery提供了noConflict()方法來解決這個問題。調用該方法可以把對$標 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...