JavaScript數據類型 —— 基礎語法(2)

来源:https://www.cnblogs.com/beimingdaoren/archive/2020/04/22/12739798.html
-Advertisement-
Play Games

JavaScript基礎語法(2) 數據類型 js中有六種數據類型,包括五種基本數據類型(Number,String,Boolean,Undefined,Null),和一種複雜數據類型(Object)。在JS中,原始類型有6中: 一、數字類型Number (1)、整數: 可以是正數、0、負數,也可以 ...


JavaScript基礎語法(2)

數據類型

js中有六種數據類型,包括五種基本數據類型(Number,String,Boolean,Undefined,Null),和一種複雜數據類型(Object)。在JS中,原始類型有6中:

一、數字類型Number

(1)、整數:

  可以是正數、0、負數,也可以是10進位、8進位、16進位等不同進位冪數的表示。

  八進位是0開頭的,後面的每個數都不超過7,就是八進位,如果超過7就是十進位。

  十六進位是以0x開頭的,後面可以是0-9, A-F。例如:

 

<script type="text/javascript">    
    console. log(123) ;
    console. log(0123);//0123是8進位的數 ,不是10進位,值對應的10進位的數是:83
    console. log(0xabc);//0xabc是16進位表示的整數,對應10進位的值: 2748
</script>

  瀏覽器顯示為:

 

 

(2)、浮點數:

  可以包含小數點,也可以包含e (表示10幕次方數),兩個同時包含也可以,不能用8進位和16進位。例如:

//這幾種寫法,它最終顯示都為0.0001
console. log( .0001);
console. log(0.0001);
console.1og(1e-4);
console.1og(1.0e-4);

浮點數將會自動轉換為整數。

var num = 1.00;
console.log(num);//1,自動轉換為整數

浮點數的最高精確度是17位。

浮點數做數學運算時偶爾有誤差:https://www.cnblogs.com/beimingdaoren/p/12739470.html

 

(3)、數字常量

可以用math對象獲得:

數字常量     含義                   數字常量 含義                  
Math.E 自然對數的低,即e Math.LOG10E  以10為底e的對數
Math.LN2 2的自然對數 Math.PI 常數π(3.1415...)
Math.LN10 10的自然對數 Math.SQRT1_2 0.5的平方根
Math.LOG2E   以2為底e的對象 Math.SQRT2 2的平方根

 

(4)、特殊值

Number對象來獲取:

內容 含義     內容 含義
Num.MAX_VALUE 可表示的最大值  Num.POSTIVE_INFINITY 正無窮大
Num.NaN 非數學字元 Num.NEGATIVE_INFINIIY 負無窮小
Num.MIN_VALUE 可表示的最小值    

 

(5)、NaN:非數字類型。

 特點:

  • 涉及到的任何關於NaN的操作,都會返回NaN
  • NaN不等於自身。
var ab= "a1";
console.log(ab/10);// NaN
console.log(NaN == NaN);// false;

 

 

(6)、isNaN()函數

用於判斷是否是一個非數字類型。如果傳入的參數是一個非數字類型,那麼返回true;否則返回false;

過程:isNaN()函數,傳入一個參數,函數會先將參數轉換為數值。如果參數類型為對象類型,會先調用對象的valueOf()方法, 再確定該方法返回的值 是否可以轉換為數值類型。如果不能,再調用對象的toString()方法, 再確定返回值。

 

(7)、數值轉換

  • Number()轉型函數,可以用於任何數據類型;
  • parselnt(),將值轉換為整型,用的比較多;
  • parseFloat();將值轉換為浮點型。

 

二、字元串類型String

字元串是以單引號’或雙引號"括起來的任意文本,比如'abc', "xyz"等等。

這裡用的單引號與雙引號的作用效果完全一樣。但是要註意,' '或" "本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'只有a, b, c這3個字元。

 字元串有length屬性。可以取得字元串的長度:

var str ="hello";
console.log(str .length);//5

 

字元串的值是不可變的。要改變一個字元串的值,先要銷毀原來的字元串,再用另一個包含新值的字元串去填充該字元串。

var lang = "java";
lang =lang + "script"; 

上面這段代碼,先創建一個能容納10個字元的字元串,然後在這個字元串中填充java和script字元串,最後銷毀原來的字元串java和scrip字元串,因為這兩個字元串此時已經沒用了。
這個過程是在後臺發生的。可參照:詳解字元串

 

字元串轉換:轉型函數String(),適用於任何數據類型(null,undefined 轉換後為null和undefined) ;toString()方法(null,defined沒有toString()方法)。例如:

var a = "beiming";
var b = null;
var c = undefined;

console.log(a.toString());//beiming
console.log(b.toString());//error報錯
console.log(c.toString());//error報錯

console.log(String(a));//beiming
console.log(String(b));//null
console.log(String(c));//undefined

 

 

三、布爾值

那麼是true,要麼是false,可以直接用true、false表示布爾值,也可以用表達式的結果表示布爾值。

註意:在js中布爾值只能用true和false表示,不能用0和1。

轉化為boolean:轉型函數Boolean();將某個值轉化為Boolean類型,例如:console.log(Boolean(0));//false

 

四、未定義數據類型

表示在變數被創建後,沒給該變數賦值之前所具有的值。

var name = "beiming";
var age;
console.log(name)//beiming
console.log(age);//undefined
console.log(height);//error,變數height沒有聲明
console.log(typeof name)//string
console.log(typeof age);//undefined
console.log(typeof height);//undefined,變數height沒有聲明
  1. 上面這段代碼中,age雖然聲明瞭,但是沒有初始化值,所以,列印出來的是undefined.而變數height沒有聲明,故報錯。
  2. 但是用typeof操作符去檢測數據類型的時候,變數age沒有初始化,結果是undefined,沒有聲明變數的height檢測的類型也是undefined.

 

五、空值

  • null類型被看做空對象指針, null類型也是空的對象引用。
  • 只有一個值,即null值,所以,在你用typeof操作符去檢測null類型的值時,結果是object類型。
  • 如果你定義了一個變數,但是想在以後把這個變數當做一個對象來用,那麼最好將該對象初始化為null值。

 

六、Object類型

js中對象是一組屬性與方法的集合。

具體的關於對象的創建方式以及對象的各種特性,會在後面的的章節中做詳細介紹。這裡就簡單介紹一下六大數據類型中的Object.

constructor屬性:構造函數屬性,可確定當前對象的構造函數。

 

console.log(o.constructor == Object);//true
var arr = new Array();
console.log(arr.constructor == Object);//false

 


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

-Advertisement-
Play Games
更多相關文章
  • 引言 目前經濟增速的放緩,到處都在鼓吹互聯網發展進入下半場。今年跳槽季的遭遇想必大家也是感受到了一絲寒意。筆者有一個朋友在阿裡工作,今年3月底開始請他幫忙內推,也許是阿裡的大前端戰略,也許真的是互聯網的寒意。對於一個三年的iOSer上海這邊一直沒有合適的崗位可推,即便是有也是招P7級別,統統被拒的命 ...
  • iOS 企業賬號配置InHouse類型證書、配置文件流程 一、關於企業賬號 蘋果的開發者賬號分為三種:個人開發者賬號、公司開發者賬號、企業開發者賬號 個人開發者賬號:以個人的名義申請的開發者賬號,有AppleID即可申請;可以在AppStore上發佈應用;可以打包內測版安裝包,需要提供安裝設備的UD ...
  • 解決:UIBarButtonItem size issue.尺寸 ...
  • SDK開發中我們可能希望使用已有的第三方開源庫,比如在發送請求的功能上我們更希望用AFNetworking而非直接使用NSURLSession,又如在實現socket連接時我們更希望用SocketRocket而非自己從零實現。但如果我們直接把AFNetworking的源文件拖到靜態庫SDK里,而宿主 ...
  • long time no see,最近在總結一些平(應)常(付)用(面)到(試)的知識點,今天就跟大家聊了聊App體積優化這個事兒。 1.為什麼要做體積瘦身 別問!問就是為了應付面試。 哈哈,開個玩笑。大家生活中都會遇到一個場景,在某個需要緊急打開App的時候,發現使用的App半天打不開!WTF!而 ...
  • 一、承接連載5 1.註意事項 對於非String使用parseInt()或parseFloat(),會先將其轉換為String類型在進行操作。 var s1 = false; var s2 = parseInt(s1);//這裡會先轉換為字元串false,然後在進行解析數字 console.log( ...
  • 寫在前面 書籍介紹:《移動WEB前端高級開發實踐》這本書的內容涵蓋了移動Web前端開發中的各個關鍵技術環節。分別從HTML5、CSS3、JavaScript的ECMAScript5和ECMAScript6版本、移動端常用佈局方案、MV 類新時代框架、預編譯技術、性能優化、開發調試、混合式應用、單元測 ...
  • JavaScript基礎語法(3) 常量和變數 編程實質上就是在對各種各樣的數據進行處理。 在對數據進行處理的過程中,需要使用一個容器將數據保存起來,這樣就可以實現對容器中的數據進行處理。 根據容器中保存的數據在程式運行的過程中可不可以改變,容器分成了兩種:常量和變數 一、常量 常量就是一種恆定不變 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...