日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

红皮书:基本概念(三)

發布時間:2023/12/31 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 红皮书:基本概念(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據類型

ECMAScript中有5種簡單數據類型(也稱為基本數據類型):undefined,null,boolean,number和string

typeof

typeof null會返回“object”。因為特殊值null被認為是一個空的對象引用。

undefined

undefined類型只有一個值,即特殊的undefined。在使用var聲明變量,但沒有對變量進行初始化時,這個變量的值就是undefined。

對未初始化的變量執行typeof操作符會返回undefined,而對未聲明的變量執行typeof操作符同樣也會返回undefined。

var message;

alert(typeof message); // undefined
alert(typeof age); // undefined

null

null類型是第二個只有一個值的數據類型,這個特殊的值是null。從邏輯角度上看,null值表示一個空對象指針,而這也正是使用typeof操作符檢測null值會返回“object”的原因。

alert(null==undefined); // true

這里,位于null和undefined之間的相等操作符(==)總是返回true。

盡管null和undefined有這樣的關系,但它們的用途完全不同。如前所述,無論在什么情況下都沒有必要把一個變量顯式地設置為undefined,可是同樣的規則對null卻不適用。換句話說,只要意在保存對象的變量還沒有真正保存對象,就應該明確地讓該變量保存null值。這樣做不僅可以體現null作為空對象指針的慣例,而且也有助于進一步區分null和undefined。

Boolean類型

該類型只有兩個字面值:true和false。這2個值跟數字值不是同一回事,因為true不一定等于1,false不一定等于0。該類型的2個值是區分大小寫的。
雖然Boolean類型只有兩個字面值,但ECMAScript所有類型的值都有與這兩個Boolean值等價的值。要將一個值轉換為其對應的Boolean值,可以調用轉型函數Boolean()。

var message="hello world!";
var messageAsBoolean=Boolean(message);
console.log(messageAsBoolean);// true

Number類型

浮點數值

浮點數值的最高精度是17位小數,但在進行算術計算時其精確度遠不如整數。例如,0.1加0.2的結果不是0.3,而是0.300000000000000004,這個小小的舍入誤差會導致無法測試特定的浮點數值。

var a=0.2,b=0.1;
    if(a+b==0.3){
        console.log("you got 0.3.");
    }

我們測試這兩個數的和不等于3,如果這2個數是0.25和0.05,或者是0.15和0.15,結果都是沒有問題的。如果是0.1和0.2,那么測試無法通過。因此,永遠不要測試某個特定的浮點數值。

NaN

NaN的兩個特點,一是任何涉及NaN的操作(例如NaN/10)都會返回NaN,這個特點在多步計算中有可能導致問題。其次,NaN與任何值都不相等,包括NaN本身。

isNaN()函數接收一個參數,該參數可以是任何類型,而函數會幫我們確定這個參數是否“不是數值”,isNaN()在接收這個值后,會嘗試將這個值轉換為數值。而任何不能被轉換為數值的值都會導致這個函數返回true.

alert(NaN==NaN); // false
alert(isNaN(isNaN)); // true
alert(isNaN(10)); // false
alert(isNaN("10")); // false
alert(isNaN("blue")); // true
alert(isNaN(true)); // false

數值轉換

Number(), parseInt(),parseFloat()

Number()函數的轉換規則如下:

1.如果boolean值,true和false將分別被轉換為1和0
2.如果是數字值,只是簡單的傳入和返回
3.如果是null值,返回0
4.如果是undefined,返回NaN

操作符

一元操作符

遞增和遞減操作符

執行前置遞增和遞減操作時,變量的值都是在語句被求值以前改變的。(在計算機科學領域,這種情況通常被稱為副效應)

var age = 29;
var anotherAge = --age +2;

alert(age); // 28
alert(anotherAge); // 30

由于前置遞增和遞減操作與執行語句的優先級相等,因此整個語句會從左至右被求值。

var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2; // 等于21
var num4 = num1 + num2; // 等于21

后置型遞增和遞減操作符的語法不變(仍然分別是++和--),只不過要放在變量的后面而不是前面。后置遞增和遞減與前置遞增和遞減有一個非常重要的區別,即遞增和遞減操作是在包含他們的語句被求值之后才執行的。

var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; // 等于22
var num4 = num1 + num2; // 等于21

一元加和減操作符

在對非數值應用一元加操作符時,該操作符會像Number()轉型函數一樣對這個值執行轉換。換句話說,布爾值false和true將被轉換為0和1,字符串值會被按照一組特殊的規則進行解析,而對象是先調用它們的valueOf()和toString()方法,再轉換得到的值。

var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = {
    valueOf : function(){
         return -1;
    }
}

s1 = +s1; // 1
s2 = +s2; // 1.1
s3 = +s3; // NaN
b = +b; // 0
f = +f; // 1.1
o = +o; // -1

一元減操作符只要用于表示負數,例如將1轉換成-1。

一元加和減操作符只要用于基本的算術運算,也可以像前面的示例所展示的一樣用于轉換數據類型。

加性操作符

加法

var result1 = 5+5;
alert(result1); // 10

var result2 = 5+"5";
alert(result2); // "55"

減法

var result1 = 5 - true; //4
var result2 = NaN -1; // NaN
var result3 = 5-3; //2
var result4 = 5 - ""; //5
var result5 = 5 - "2"; // 3
var result6 = 5 - null; // 5

相等操作符

null == undefined; // true
"NaN" == NaN; // false
5 == NaN; // false
NaN == NaN; // false
NaN != NaN; // true
false ==0; // true
true == 1; // true
true == 2; // false
undefined ==0; false
null ==0; false
"5"==5; // true

記住:null == undefined會返回true,因為它們是類似的值;但null===undefined會返回false,因為它們是不同類型的值。

函數

function sum(num1, num2){
    return num1 + num2;
    alert("Hello world"); // 永遠不會放棄
}

這個函數會在執行完return 語句之后停止并立即退出。因此,位于return 語句之后的任何代碼都不會執行。

作者:風雨后見彩虹
出處:http://www.cnblogs.com/moqiutao/
聲明:如果您覺得本文對您的學習有所幫助,請多關注支持與鼓勵。
正在看本人博客的這位童鞋,我看你氣度不凡,談吐間隱隱有王者之氣,日后必有一番作為!屏幕右下角有“推薦”二字,如果覺得對你有幫助,你就順手把它點了吧。

總結

以上是生活随笔為你收集整理的红皮书:基本概念(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。