JS數據類型詳解

来源:https://www.cnblogs.com/goodfeeling/archive/2018/05/18/9056938.html
-Advertisement-
Play Games

JavaScript中一共有六種數據類型,其中有五種是基本的數據類型分別是:Undefined、Null、Boolean、Number和String,然後就是有一種複雜的數據類——Object。 一、認識typeof操作符 typeof可以用來檢測給定變數的數據類型。 "Undefined" 該值未 ...


  JavaScript中一共有六種數據類型,其中有五種是基本的數據類型分別是:Undefined、Null、Boolean、Number和String,然後就是有一種複雜的數據類——Object。

一、認識typeof操作符

  typeof可以用來檢測給定變數的數據類型。

  • "Undefined"  該值未定義 
  • "Boolean"  該值是布爾值
  • "String"  該值是字元串
  • "Number"  該值是數值
  • "Object"   該值是對象或null
  • "Function"  該值是函數

typeof一般的用法:

打開谷歌瀏覽器Developer Tools工具,快捷鍵(ctrl+shift+J):

var str = "This string";
console.log(typeof (str));//"string"
console.log(typeof 95);//number

 

二、Undefined類型

  這個類型只有一個值,那就是undefined。在JavaScript中用了var聲明瞭變數,但未對其進行初始值的話,就會返回一個undefined。

var str;
console.log(str == undefined);//true

 

  如果在未定義的變數進行輸出,會產生錯誤而不是undefined。

var str;//這個變數聲明之後預設取得了undefined值
//var num;
//假裝定義了num
console.log(str);//undefined console.log(num);//錯誤

三、Null類型

  同樣的Null也只有一個值的數據類型,null值表示一個空對象指針,用typeof操作符檢測我們發現null值時會,返回“object”的現象:

var cat = null;
console.log(typeof cat); //"object"

一般來說,undefined值派生自null值,在ECMA-262規定對它們的相等測試要返回true:

console.log(null == undefined);

四、Boolean類型

  Boolean類型有兩個字面量值:true和false,但往往這兩個值不能用1或0來表示。可以用Boolean()方法來轉換該值:

 

var boolean = "Hello World!";
var thisBoolean = Boolean(boolean);
console.log(thisBoolean);//true

 

五、Number類型

  number類型使用了IEEEE754格式來表示整數和雙精度數值(浮點數),下麵是一些表示方法:

 

var inta = 20;//整數
var octal =070;//八進位數
var hex = 0xA;//十六進位
var float = 3.141e5;//等於314100

//數值範圍
var result = Number.MAX_VALUE + Number.MAX_VALUE;
console.log(isFinite(result));

 

  NaN(Not a Number)

  NAN是個特殊的數值,用於表示一個本來要返回數值的操作數未返回數值的情況,JavaScript定義了isNaN()函數。

  isNaN()可以接收一個參數,可以是任何類型,在接收到該參數後,會嘗試將這個參數轉換為數值,返回的值用true和false表示:

console.log(isNaN(NaN));//true
console.log(isNaN(0));//false 0是個數值
console.log(isNaN("0"));//false 可以被轉換成數值
console.log(isNaN(true));//false 可以被轉換數值1
console.log(isNaN("blue"));//true 不能被轉換成數值

   

  數值轉換有三個函數可以把非數值轉換為數值:Number()、parseInt()、parseFloat(),其中Number()可以用於任何數據類型,而後面兩個則用於把字元串轉換成數值。

 Number()方法

 

 

 

 

 

 

 

 

 

 

 

var thisNum = Number("Hello World");//NaN
var thisNum = Number("");//0
var thisNum = Number("011");//11
var thisNum = Number("false");//0
var thisNum = Number("this.window");//NaN

 

parseInt()方法

一些例子:

var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六進位數)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八進位數)
var num6 = parseInt("70"); // 70(十進位數)
var num7 = parseInt("0xf"); // 15(十六進位數)

這裡講到進位轉化問題,ECMAScript3和5會存在分歧。比如:

//ECMAScript 3 認為是56(八進位),ECMAScript 5 認為是70(十進位)
var num = parseInt("070");

為瞭解決這個問題parseInt提供了另外一個參數,可以指定對應的進位:

var num1 = parseInt("10", 2); //2 (按二進位解析)
var num2 = parseInt("10", 8); //8 (按八進位解析)
var num3 = parseInt("10", 10); //10 (按十進位解析)
var num4 = parseInt("10", 16); //16 (按十六進位解析)

 

parseFloat()方法

一些方法:

var num1 = parseFloat("1234blue"); //1234 (整數)
var num2 = parseFloat("0xA"); //0(十六進位)
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5(八進位沒有效果)
var num6 = parseFloat("3.125e7"); //31250000

 

六、String類型

  

字元串的一般特點:

var str1 = "This is the letter "
var str2 = "sigma:\u03a3"//含有轉移字元
str = str1 + str2;
console.log(str.length);//26

toString()方法

  這個方法可以轉換4個不同的值:數值、布爾值、null和undefined。數值和布爾值轉換都是得到的結果相同,另外null和undefined沒有toString()方法,所以直接返回相關的字面量。

var str1 = 10;
var str2 = true;
var str3 = null;
var str4;

console.log(String(str1));//"10"
console.log(String(str2));//"true"
console.log(String(str3));//"null"
console.log(String(str4));//"undefined

 

 

總結:

  1. 我們知道了JavaScript數據類型一共有六種,五種基本類型,一種複雜類型。
  2. 利用typeof()可以檢測值的類型。
  3. 知道了NaN,叫非數值(Not a Number)是一個特殊的數值,可以用來表示未返回的操作數值情況。
  4. 學習轉換字元串用Number()、parseInt()、parseFloat()這三個方法。
  5. String類型的方法toString()的方法可以把值轉換成一段字元串。

  到這裡還差一個object類型未學習,我會在後面添加上,如果有錯誤或者不嚴謹的地方,請務必給予指正,十分感謝。如果您喜歡或者有所啟發,歡迎添加收藏,一起加油學習啊。


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

-Advertisement-
Play Games
更多相關文章
  • 再寫MapReduce執行流程之前,首先先對MapReduce有一些瞭解: 1. 簡介 MapReduce是一個計算框架,既然是做計算的框架,那麼表現的形式上就有輸入,操作輸入,得到結果2.主從結構 a.Hadoop1.0 MapReduce是主從結構,Hadoop1.0的主是JobTracker, ...
  • 寫這篇隨筆的目的是我發現了在上一篇關於My SQL的隨筆中存在一些不嚴謹的代碼問題,在這裡再次簡單的總結一下並加以改進,以代碼為主。 # !每行命令必須以分號(;)結尾 先通過命令行進入資料庫客戶端 mysql -h服務端ip地址 -P(大寫)服務端使用的埠,一般為3306 -p(小寫) 回車之後 ...
  • 一、知識介紹 1、【廣播分類】 ①有序廣播:接收者A收到廣播傳遞給B,B傳給C,有序傳遞。任何一個環節都可以終止廣播,也可以修改廣播中攜帶的數據。 發送的方式:sendOrderedBroadcast(intent,receiverPermission); 【提示】①第二個參數是設置發送的許可權,這裡 ...
  • 一、知識介紹 1、broadcastReceiver是廣播接受者,四大組件之一。 2、Android中內置了很多系統級別的廣播,可以在應用程式中得到各種系統的狀態信息。 3、使用場景: ①當手機沒有電時,會告知用戶“電量低”的廣播信息。可以做到正在使用的app就會接收到這個廣播消息,如果是游戲可能是 ...
  • 使用Chrome Inspect調試混合應用可以幫助我們排查問題。例如定位元素,快速修改CSS樣式並實時查看效果。其實微信開發也是一種混合開發模式,微信可以看做一個原生的Android App搭配了一個JS運行環境(WebView),然後大家就可以愉快地使用Web前端技術(Html/Css/Js)開 ...
  • 在大型商場,醫院或是大樓里,你是否曾經有過找不到想去的地方的經歷呢?這種情況下採用傳統的定位方法就有些力不從心了。首先這些地方不能採用GPS定們,而Wifi和蜂窩式行動電話基站定位誤差比較大。這種情況下的定位就叫”微定位“技術 。 微定位技術中一個比較重要的概念-地理圍欄。地理圍欄是LBS的一種新應 ...
  • dom對象:document object model文檔對象模型 文檔:超文本標記文檔 html xml 對象:提供了屬性和方法 模型:使用屬性和方法操作超文本標記性文檔 可以使用js裡面的DOM提供的對象,使用這些對象的屬性和方法,對標記性文檔進行操作 想要對標記性文檔進行操作,首先需要對標記性 ...
  • html基本結構<html>內容</html> html開始標記<head>內容</head> html文件頭標記<title>內容</title> htmlhtml文件標題標記<meta>內容</meta> 文件的元信息(網頁的描述信息),必須在head元素里<body>內容</body> 文件主 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...