首頁 web前端 js教程 淺談javascript六種資料型態以及特殊注意點_javascript技巧

淺談javascript六種資料型態以及特殊注意點_javascript技巧

May 16, 2016 pm 05:07 PM
javascript 資料類型

在js中常見的六種資料型態:String類型、Null型別、Number型別、Boolean型別、Object型別。

1、typeof的注意點

涉及到資料類型,不免會提到,操作符 typeof。要注意:

1、typeof是操作符,不是方法。雖然我們經常使用typeof()的方式來取得物件的資料類型。

2、對 null 取typeof  是 object(這是因為null是 空的物件參考),對函數取 typeof 是 function

複製程式碼 程式碼如下:

alert(typeof null); >function demo(){
      alert('demo');
    }
alert(typeof demo);     //回復  function

2、為各種資料型態的物件變數設定初始值

注意,如果Object型別的 物件變數開始不知道賦值什麼,不要  var demo={};最好是 設定成null;

複製程式碼 程式碼如下:
var d2=null;

var d2=null;

d
d={' key':"shit"};

var d3='';//字串預設

var d4=0;   //Number 類型初始值設定為0var d5=null; //對object 類型設定初始預設值

3、undefined 和null 的區別和注意點

1.如果用 “==” 比較,他們是相等的,因為比較的是值

2、區分他們有兩種方法(他們的核心都是比較他們的 資料類型)

  1)使用typeof 將他們區分開 

  2)使用全等「===」  :比較的是 值和 資料類型,只有全部相同 才回傳 true 複製程式碼

程式碼如下:


🎜>alert(typeof undefined == typeof null); //false
alert(undefined === null);             //true

4、Boolean的注意點

1、true 和1 比較相同,false 和0 比較是相同(是“==” 比較),因為內部會實現資料類型的轉化,將true 轉換成1,將false 轉換成0. js 內部有很多資料類型的自動轉換,這是大家一定要注意的。後面還會提到很多。  但是使用「===」  就不相等了,因為 他們的資料型別是不等的。

2、顯示轉換成Boolean,使用Boolean()方法顯示轉換,要注意的是各種資料型,何時轉換成true 什麼時候轉換成 false

  1)String型,只要不是  空字串  都會 轉換成 true

  2)Number型,只要不是 0 ,就算是 負數,都會轉換成 true

  3)Object型,只要 不是 null 型,都會轉換成true

  4)Undefined類型,都會轉換成 false

我就不做演示,大家可以自己動手試試看。

3、(***)if()  語句的 ()  內部就是呼叫了 Boolean函數

5、Number型注意點

 1、float類型 不能做精準運算 複製程式碼

程式碼如下:
alert(0.1 0.2); >

2、 支持 科學計數法 運算

3、NaN(Not a Number)

 1)var d=0/0;  注意:在js 裡 是不會報錯的,而是回傳 NaN

 2)可以透過Number.NaN 來取得

 3)NaN和 任何 物件做運算都會回傳 NaN

 4)isNaN()判斷是不是 NaN

複製程式碼
程式碼如下:

alert(isNaN(NaN));//true
alert(isNaN(12));//false
alert(isNaN('123'));//false:因為字元串類型的數字可以自動轉換成  數字
alert(isNaN('lew'));//true
alert(isNaN(false));//(*)false:因為bool  值可以轉換成數字,true變1,,false 變0

5)isNaN()內部執行原理:同樣適用於物件。實作原理:首相呼叫物件的valueOf()方法,如果能轉換成數字就直接做判斷;如果不能就再呼叫toString()方法,然後測試回傳值。

   valueOf()內部呼叫了toObject()方法,兩個方法的 內部執行的原理:如下圖:

淺談javascript六種資料型態以及特殊注意點_javascript技巧

複製程式碼 程式碼如下:

var box={        toString:function(){
             
alert(isNaN(box));//false
alert (box);//123   alert()內部也是先呼叫了物件的valueOf()  然後呼叫toString()方法



 6)將其他資料型別轉換成Number型別
   含有三個函數:Number():可以針對所有的資料型別進行轉換;parseInt()和parseFloat() 只 針對 字串進行轉換。

複製程式碼 程式碼如下:alert(Number('123')); 123
alert(Number('0234'));//234
alert(Number(true));//1
alert(Number(null));//(**)0

//除了 上面的  其他的都是 回 NaN
alert(Number(undefined))//NaN



Number()內部實作的原理:同isNaN() 也是先呼叫 valueOf()  然後再呼叫 toString()。 。所以可想而知,性能是比較差的。 。所以所過只要要被轉換的物件是字串的話,就呼叫 parseInt()  或 parseFloat()因為他們內部不需要對類型做判斷。

parseInt() 和 parseFloat()  呼叫注意:從第一個 為數字的 字元開始 一直到 第一個部位數字的字元 的前一個數字  的這部分字串 轉換成數字

複製程式碼 程式碼如下:alert(parseInt('123leb');/// 123
alert(parseInt('123leb345'));//123
alert(parseInt('len234'));//NaN



當parseInt()裡面的參數是 float類型的 那麼只 取得 數字的  整數部分

複製程式碼 程式碼如下:alert(parseInt(56.12)); 🎜>


 6、String類型

 1)(*重要*)在ECMAScript中 字串有不變性:字串創建之後就不會再改變。  要改變一個已經被賦值的字串變量,首先要銷毀 變數中 字串,然後再用一個包含 新值的字串  填入變數。

複製程式碼

d= d ' shit';//執行過程:先將'hello'賦值一份,然後將d 中的字串清空,將字串'hello' 和' shit'進行拼接,然後賦值給d 變數。 (所以 字串 的值 一旦 被 建立之後 就不會 改變)



 2)toString()方法 將其他資料型別轉換成 String型別。但是如果對 null 或undefined  進行操作的話就會報錯。
 3)但是String()方法同樣能實現 toString()的效果,但是 可以對 null 和undefined進行運算。

 內部原理:先 呼叫 toString(),如果可以轉換成字串,就將結果直接回傳。否,再進行判斷是 null 還是 undefined,然後回傳‘null' 或 ‘undefined'

總結:如果知道 變數不可能是 null  或 undefined,就使用 toString()效能比 String(),因為 String()內部還要判斷,所以有損效能。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
MySQL資料庫中性別欄位應該使用什麼資料類型? MySQL資料庫中性別欄位應該使用什麼資料類型? Mar 14, 2024 pm 01:21 PM

在MySQL資料庫中,性別欄位通常可以使用ENUM類型來儲存。 ENUM是一種枚舉類型,它允許我們在一組預先定義的值中選擇一個作為欄位的值。在表示性別這樣一個固定且有限的選項時,ENUM是一個很好的選擇。讓我們來看一個具體的程式碼範例:假設我們有一個名為"users"的表,其中包含了使用者的信息,包括性別。現在我們要為性別創建一個字段,我們可以這樣設計表結構:CRE

MySQL中最適合用於性別欄位的資料類型是什麼? MySQL中最適合用於性別欄位的資料類型是什麼? Mar 15, 2024 am 10:24 AM

在MySQL中,最適合用於性別欄位的資料類型是ENUM枚舉類型。 ENUM枚舉類型是一種允許定義一組可能取值的資料類型,性別欄位適合使用ENUM類型是因為性別通常只有兩個取值,即男性和女性。接下來,我將透過具體的程式碼範例來展示如何在MySQL中建立一個性別欄位並使用ENUM枚舉類型儲存性別資訊。以下是操作步驟:首先,在MySQL中建立一個名為users的表格,包括

Python 語法的心智圖:深入理解程式碼結構 Python 語法的心智圖:深入理解程式碼結構 Feb 21, 2024 am 09:00 AM

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

MySQL中布林類型的使用方法詳解 MySQL中布林類型的使用方法詳解 Mar 15, 2024 am 11:45 AM

MySQL中布林類型的使用方法詳解MySQL是一種常用的關聯式資料庫管理系統,在實際應用中經常需要使用布林類型來表示邏輯上的真假值。 MySQL中布林類型有兩種表示法:TINYINT(1)和BOOL。本文將詳細介紹MySQL中布林類型的使用方法,包括布林類型的定義、賦值、查詢和修改等操作,同時結合具體的程式碼範例進行說明。 1.布林類型的定義在MySQL中,可

MySQL中性別欄位最佳資料類型選擇是什麼? MySQL中性別欄位最佳資料類型選擇是什麼? Mar 14, 2024 pm 01:24 PM

在設計資料庫表時,選擇合適的資料類型對於效能最佳化和資料儲存效率非常重要。在MySQL資料庫中,儲存性別欄位的資料類型真是沒有所謂的最佳選擇,因為性別欄位一般只有兩個取值:男或女。但是為了效率和節省空間,我們可以選擇合適的資料類型來儲存性別欄位。在MySQL中,儲存性別欄位最常用的資料類型是枚舉類型。枚舉類型是一種能夠把欄位的值限定在一個有限的集合內的資料型別

揭秘主流程式語言中的基本資料型別分類 揭秘主流程式語言中的基本資料型別分類 Feb 18, 2024 pm 10:34 PM

標題:基本資料類型大揭密:了解主流程式語言中的分類正文:在各種程式語言中,資料類型是非常重要的概念,它定義了可以在程式中使用的不同類型的資料。對於程式設計師來說,了解主流程式語言中的基本資料類型是建立堅實程式基礎的第一步。目前,大多數主流程式語言都支援一些基本的資料類型,它們在語言之間可能有所差異,但主要概念是相似的。這些基本資料類型通常被分為幾個類別,包括整數

C語言的基本語法和資料類型介紹 C語言的基本語法和資料類型介紹 Mar 18, 2024 pm 04:03 PM

C語言是一種廣泛使用的電腦程式語言,具有高效、靈活和強大的特點。要熟練使用C語言進行編程,首先需要了解其基本語法和資料類型。本文將介紹C語言的基本語法和資料類型,並舉例說明。一、基本語法1.1註解在C語言中,可以使用註解來對程式碼進行說明,以便於理解和維護。註解可以分為單行註解和多行註解。 //這是單行註解/*這是多行註解*/1.2關鍵字C語

Python學習必備的基礎知識有哪些? Python學習必備的基礎知識有哪些? Jan 13, 2024 pm 01:37 PM

學習Python前需要掌握哪些基礎?隨著人工智慧、大數據和雲端運算等技術的不斷發展,程式設計已成為現代社會中越來越重要的技能。而Python作為一門簡潔易學且功能強大的程式語言,越來越受到廣大程式設計師和初學者的青睞。如果你也打算學習Python,那麼在開始之前有一些基礎知識是必須掌握的。理解程式設計的基本概念在開始學習任何程式語言之前,首先需要先理解一些基本的

See all articles