第三章--數據類型

来源:http://www.cnblogs.com/wrong-w/archive/2016/04/18/5403362.html
-Advertisement-
Play Games

3.4--數據類型 數據類型分為 boolean , string, object , function , number,undefinde 3.4.1--typeof 操作符 typeof 操作符在safari5,chrome7以及之前版本 會將正則表達式 返回為"function",而在其他瀏 ...


3.4--數據類型

數據類型分為 boolean , string, object , function , number,undefinde

 

3.4.1--typeof 操作符

typeof 操作符在safari5,chrome7以及之前版本 會將正則表達式 返回為"function",而在其他瀏覽器會返回"object"

console.log(typeof null);

var message = "some string";
console.log(typeof message);
console.log(typeof 95);

3.4.2--undefined類型

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

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

3.4.3--null類型

從邏輯角度講,null是一個空對象指針,而這正是null類型為"object"的原因了

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

實際上undefined值是派生於null值的,所以在ECMA-262相等測試返回true

console.log(null == undefined); //true

3.4.4--boolean值

var message_4 = "hellow world";
console.log(Boolean(message_4)); //true

任何非空字元串的boolean值為true , ""(字元串)為false
任何非零數字值的boolean值為true , 0和NaN(not a number)為false
任何oject對象的boolean值為true , null為false
任何n/a的undefined的boolean值為true , undefined 為false

3.4.5--Number類型

number 支持 八進位 和 十六進位的表示,所有八進位和十六進位表示的數值最終會轉成十進位的數值表示

var intnum = 55; // 整數55
var octalnum = 070; //解析結果八進位的56
var octalnum_1 = 079; // 無效的八進位--解析為79
var hexNum = 0xA; //解析為十六進位的10
var hexNum_1 = 0x1f; //解析為十六進位的31

1.浮點數值


基於IEEE754格式來計算

var floatNum = 1.1;

var floatNum_1 = .1 //有效,但不推薦

var floatNum1 = 10.0 //由於保存浮點數的記憶體是整數的兩倍,所以ECMA會儘量把浮點數轉換成整數

var floatNum_2 = 3.125e3; //表示3.125 * 10的3次方
var floatNum_3 = 3e-5; // 表示3*10的-5次方

var floatNum_4 = 0.1 + 0.2; //結果為0.30000000000000004    浮點數計算準度不如整數

2.數值範圍

 

Number.MIN_VALUE  表示最小值5e-324
Number.MAX_VALUE  表示最大值1.7976931348623157e+308
超過以上兩個數值會轉換成 Infinity 和 –Infinity

 

 

3.NaN--not a number

isNaN(10); //false
isNaN("blue") // true
isNaN(NaN) //true
isNaN(true) // false 可以轉換成1

 

4.數值轉換

var num1 = parseInt("123blue"); //  結果為123
var num2 = parseInt(""); //    NaN
var num3 = parseInt(0x1f); //31
var num4 = parseInt("AF", 16) // 表示AF的十六進位,第二個參數為幾進位
var num5 = parseInt("AF") // NaN
var num6 = parseInt("10", 2) //2(10的二進位解析)
var num7 = parseInt("10", 8) // 8 (10的八進位解析)
var num8 = parseFloat("0908.5") // 908.5會忽略前面的零
console.log(num8)

 

3.4.6—String

用string()方法可以把一個值轉換為字元串

var value =11;
console.log(String(value)) //"11"

 

3.5操作符

有遞增操作符++ ,遞減操作符--

var age = 29;
age++//30
var age_2 = --age; //遞減操作符要放在前面
console.log(age_2)

3.5.3--boolean操作符

!為邏輯非操作符(取相反值)

&&為邏輯與操作符(並且的意思),兩個為true才可以為true,有一個false都不行

||為邏輯或操作符(或者的意思),有一個為true就可以。

 

3.5.5--加法操作符

 

字元串加數字,ECMAscript會將數字轉換成字元串進行並接

如果想將計算結果加入字元串,就把數值執行加(),先執行求值再並接。

var result = (5) + "5";
var num1 = 10;
var num2 = 20;
var num3 = "The result is " + (num1 + num2)
console.log()

 

3.5.6--關係操作符

// 如果比較兩個值為數值的話,就按照正常大小比較
var result = 1 > 2; //false
// 如果兩個值為字元串的話,就按照字元串編碼值比較
var result_2 = "Brick" < "alphate"; // true
var result_3 = "23" > "3";
false
// 如果一個值為數值,一個值為字元串,則轉字元串為數值作為比較,如果轉不了數值就轉為NaN
var result_4 = 23 > "3"; //true
var result_5 = 23 > "a"; //false
//如果數值和Boolean值進行比較就降Boolean值轉為數值進行比較
var result_6 = 23 > false; //true
//如果數值和Object進行比較,就把Object用ValueOf()方法或者用toString()方法轉換進行比較
var result_7 = 23 > null; //true
//相等== 和 全等=== ,相等是把兩個操作數轉換再比較,全等是兩個操作數不轉換來比較
//任何操作數和NaN比較都返回false
var result_8 = ("23" == 23); //true
var result_12 = (55 === "55"); //false
var result_9 = (null == undefined); //true
var result_10 = (null === undefined); //false
var result_11 = (NaN == NaN); // false
var result_13 = (NaN == 1); //false

3.5.10--都好操作符


可以一次聲明多個變數。 用於賦值時,逗號操作符會返回最後一項

var num1 = 1 , num2 =2 ,num3 =3;
var num=(1,2,3,4,5); // 5

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

-Advertisement-
Play Games
更多相關文章
  • ENode架構圖 什麼是ENode ENode是一個.NET平臺下,純C#開發的,基於DDD,CQRS,ES,EDA,In-Memory架構風格的,可以幫助開發者開發高併發、高吞吐、可伸縮、可擴展的應用程式的一個應用開發框架。 開源項目地址:https://github.com/tangxuehua ...
  • 獲取【下載地址】 QQ: 313596790 【免費支持更新】三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】 A 集成代碼生成器(開發利器)+快速構建表單; QQ:313596790 free ...
  • Atitit JAVA p2p設計與總結 JXTA 2 JXTA 2 是開放源代碼 P2P 網路的第二個主要版本,它利用流行的、基於 Java 的參考實現作為構建基礎。在設計方面進行了重要的修改,以獲得更高的性能、海量伸縮性和可維護的 P2P 網路。本文建立在 Sing Li 於兩年前發表的 JXT ...
  • Atitit .h5文件上傳 1. 上傳原理1 2. Html1 3. Js2 4. uploadV2.js2 5. upServlet & FileUploadService {3 6. 註意::去除struts的干擾3 7. 參考3 1. 上傳原理 FormData + apache io 2. ...
  • Atitit.提升軟體Web應用程式 app性能的方法原理 h5 js java c# php python android .net 1. 提升單例有能力的1 2. 減少工作數量2 2.1. 減少距離2 2.2. 添加索引2 2.3. Dma api2 2.4. Cdn2 2.5. Cache2 ...
  • 1.意圖 提供一個創建一系列相關或相互依賴對象的介面,而無需制定它們具體的類。 2.適用性 一個系統要獨立於它的產品創建、組合和表示時。 一個系統要由多個產品系列中的一個來配置時。 當你強調一系列相關的產品對象的設計以便進行聯合使用時。 當你提供一個產品的類庫,而只想顯示它們的介面而不是實現時。 3 ...
  • 最近經常有人問圖片上傳怎麼做,有哪些方案做比較好,也看到過有關於上傳圖片的做法,但是都不是最好的 今天再這裡簡單講一下上傳圖片以及圖片伺服器的大致理念 如果是個人項目或者企業小項目,僅僅只有十來號人使用的小項目,可以使用如下方案: 用戶訪問系統,使用上傳圖片功能,那麼圖片就上傳到你的當前項目所在的t ...
  • 前幾日在網上看到了一個關於Carousel插件的教學視頻,於是也順便跟著學習著做了一下。但是在做完之後發現,在別的網站上面看到類似的效果要比現在做的這個要多一個功能,也就是在底下會有一些按鈕,當滑鼠放上去或者點擊之後,Carousel就會吧跟這個按鈕相同下標的li作為第一幀顯示。既然現在這個沒有了這 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...