js實例教程-JavaScript使用學習之類型轉換

发布时间:2018-11-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了js實例教程-JavaScript使用學習之類型轉換脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小寶典致力於為廣大程序猿(媛)提供高品質的代碼服務,請大家多多光顧小站,小寶典在此謝過。

類型轉換

轉換和相等性:

(1)"=="等於運算符在判斷兩個值是否相等時有時會發生類型轉換,"==="恆等運算符在判斷相等時不會做任何類型轉換。

(2)類型轉換過程中,轉換前的值並不等於轉換后的值。

顯式類型轉換:

(1)顯示類型轉換可以使用Boolean()、Number()、String()或Object()函數。例如:

Number("3");

String(false);

String(true);

false.toString();

true.toString();

Boolean([ ]);

Boolean(null);

Object(3); //等於new number(3)

(2)除了null和undefined之外任何值都有toString()方法。toString()與String()方法返回的結果一致。

(3)null和undefined直接轉換為對象,則會拋出一個類型錯誤(TyPEError)。如果使用Object()函數,則不會拋出異常,它僅簡單地返回一個新創建的空對象。

(4)toString()方法可以接收轉換基數(範圍在2至36之間),toString()方法默認轉換為十進制的。例如:

VAR a = "2";

a1 = a.toString(2); //二進制

a2 = "0" + a.toString(8); //八進制

a3 = "0x" + a.toString(16); //十六進制

隱式轉換:

(1)+運算符的操作數中有一個是字符串,則會將其他操作數轉換為字符串。

(2)一元“+”運算符將其操作數轉換為數字。例如:+a 等價於Number(a)

(3)一元“!”運算符將其操作數轉換為布爾值並取反。例如:

!! x // 等價於 Boolean(x). 注意是雙嘆號,x先轉換為true(或者false),然後取反,變為false(或者true),此時已經是布爾值了,所以不用將操作數轉換為布爾值,再次取反,還是得到true(或者false)。

對象轉換為原始值

(1)所有的對象(包括數組和函數,包裝對象)都會轉換為true。

(2)所有的對象都會繼承兩個轉換方法,分別是toString()和valueOf()。

toString():

對象包括普通的對象,函數,數組。

對於部分對象:例如:({x:1, y:2}).toString() // => "[object Object]

對於RegExp對象:轉換為表示正則表達式直接量的字符串。例如://d+/g.toString() // => "///d+/g"

對於數組:例如:var a = [11, 12, 13]; a.toString(); // =>"11,12,13"(一個包含逗號的字符串)

對於函數:將用戶自定義的函數轉換為JavaScript代碼字符串。

例如:(function(x) { f(x); }).toString() // => "function(x) {/n f(x);/n}"

對於日期類:返回了一個可被JavaScript解析的日期和時間字符串。

例如:new Date(2010,0,1).toString() // => "Fri Jan 01 2010 00:00:00 GMT-0800 (PST)"

valueOf():

對於對象:如果對象是複合值(一般情況下對象均為複合值),valueOf()方法默認返回對象本身。數組、函數和正則表達式的valueOf()方法只是簡單返回對象本身。日期類定義的valueOf()方法返回自1970年1月1日以來的毫秒數。例如:new Date(2018,5,27).valueOf();

類型轉換

轉換和相等性:

(1)"=="等於運算符在判斷兩個值是否相等時有時會發生類型轉換,"==="恆等運算符在判斷相等時不會做任何類型轉換。

(2)類型轉換過程中,轉換前的值並不等於轉換后的值。

顯式類型轉換:

(1)顯示類型轉換可以使用Boolean()、Number()、String()或Object()函數。例如:

Number("3");

String(false);

String(true);

false.toString();

true.toString();

Boolean([ ]);

Boolean(null);

Object(3); //等於new number(3)

(2)除了null和undefined之外任何值都有toString()方法。toString()與String()方法返回的結果一致。

(3)null和undefined直接轉換為對象,則會拋出一個類型錯誤(TypeError)。如果使用Object()函數,則不會拋出異常,它僅簡單地返回一個新創建的空對象。

(4)toString()方法可以接收轉換基數(範圍在2至36之間),toString()方法默認轉換為十進制的。例如:

var a = "2";

a1 = a.toString(2); //二進制

a2 = "0" + a.toString(8); //八進制

a3 = "0x" + a.toString(16); //十六進制

隱式轉換:

(1)+運算符的操作數中有一個是字符串,則會將其他操作數轉換為字符串。

(2)一元“+”運算符將其操作數轉換為數字。例如:+a 等價於Number(a)

(3)一元“!”運算符將其操作數轉換為布爾值並取反。例如:

!! x // 等價於 Boolean(x). 注意是雙嘆號,x先轉換為true(或者false),然後取反,變為false(或者true),此時已經是布爾值了,所以不用將操作數轉換為布爾值,再次取反,還是得到true(或者false)。

對象轉換為原始值

(1)所有的對象(包括數組和函數,包裝對象)都會轉換為true。

(2)所有的對象都會繼承兩個轉換方法,分別是toString()和valueOf()。

toString():

對象包括普通的對象,函數,數組。

對於部分對象:例如:({x:1, y:2}).toString() // => "[object Object]

對於RegExp對象:轉換為表示正則表達式直接量的字符串。例如://d+/g.toString() // => "///d+/g"

對於數組:例如:var a = [11, 12, 13]; a.toString(); // =>"11,12,13"(一個包含逗號的字符串)

對於函數:將用戶自定義的函數轉換為JavaScript源代碼字符串。

例如:(function(x) { f(x); }).toString() // => "function(x) {/n f(x);/n}"

對於日期類:返回了一個可被JavaScript解析的日期和時間字符串。

例如:new Date(2010,0,1).toString() // => "Fri Jan 01 2010 00:00:00 GMT-0800 (PST)"

valueOf():

對於對象:如果對象是複合值(一般情況下對象均為複合值),valueOf()方法默認返回對象本身。數組、函數和正則表達式的valueOf()方法只是簡單返回對象本身。日期類定義的valueOf()方法返回自1970年1月1日以來的毫秒數。例如:new Date(2018,5,27).valueOf();

覺得可用,就經常來吧!Javascript技巧 腳本寶典 歡迎評論哦! js技巧,巧奪天工,精雕玉琢。小寶典獻醜了!

脚本宝典总结

以上是脚本宝典为你收集整理的js實例教程-JavaScript使用學習之類型轉換全部内容,希望文章能够帮你解决js實例教程-JavaScript使用學習之類型轉換所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。