toString()方法

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/06/05/5557387.html
-Advertisement-
Play Games

[1]Undefined、Null [2]Boolean [3]String [4]Number [5]Object [6]Function [7]Array [8]Date [9]RegExp [10]Error ...


前面的話

  本文將介紹toString()方法,toString()方法返回反映這個對象的字元串

 

【1】undefined和null沒有toString()方法

undefined.toString();//錯誤
null.toString();//錯誤

 

【2】布爾型數據true和false返回對應的'true'和'false'

true.toString();//'true'
false.toString();//'false'
Boolean.toString();//"function Boolean() { [native code] }"

 

【3】字元串類型原值返回

'1'.toString();//'1'
''.toString();//''
'abc'.toString();//'abc'
String.toString();//"function String() { [native code] }"

 

【4】數值類型的情況較複雜

Number.toString();//"function Number() { [native code] }"

  1、正浮點數及NaN、Infinity、-Infinity加引號返回

1.23.toString();//'1.23'
NaN.toString();//'NaN'
Infinity.toString();//'Infinity'
-Infinity.toString();//'-Infinity'

  2、負浮點數或加'+'號的正浮點數直接跟上.toString(),toString()無效並返回原數值

+1.23.toString();//1.23
typeof +1.23.toString();//'number'
-1.23.toString();//-1.23
typeof -1.23.toString();//'number'

  3、整數直接跟上.toString()形式,會報錯,提示無效標記

0.toString();//Uncaught SyntaxError: Invalid or unexpected token

  因此,為了避免以上無效及報錯的情況,數字在使用toString()方法時,加括弧可解決

(0).toString();//'0'
(-0).toString();//'0'
(+1.2).toString();//'1.2'
(-1.2).toString();//'-1.2'
(NaN).toString();//'NaN'

  此外,數字類型的toString()方法可以接收表示轉換基數(radix)的可選參數,如果不指定此參數,轉換規則將是基於十進位。同樣,也可以將數字轉換為其他進位數(範圍在2-36)

var n = 17;
n.toString();//'17'
n.toString(2);//'10001'
n.toString(8);//'21'
n.toString(10);//'17'
n.toString(12);//'15'
n.toString(16);//'11'

 

【5】對象Object類型及自定義對象類型加括弧返回[object Object]

{}.toString();//報錯,Unexpected token .
({}).toString();//[object Object]
({a:123}).toString();//[object Object]
Object.toString();//"function Object() { [native code] }"
function Person(){
    this.name = 'test';
}
var person1 = new Person();
person1.toString();//"[object Object]"

類型識別

  常常使用Object.prototype.toString()來進行類型識別,返回代表該對象的[object 數據類型]字元串表示

  [註意]Object.prototype.toString()可以識別標準類型及內置對象類型,但不能識別自定義類型

console.log(Object.prototype.toString.call("jerry"));//[object String]
console.log(Object.prototype.toString.call(12));//[object Number]
console.log(Object.prototype.toString.call(true));//[object Boolean]
console.log(Object.prototype.toString.call(undefined));//[object Undefined]
console.log(Object.prototype.toString.call(null));//[object Null]
console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object]

console.log(Object.prototype.toString.call(function(){}));//[object Function]
console.log(Object.prototype.toString.call([]));//[object Array]
console.log(Object.prototype.toString.call(new Date));//[object Date]
console.log(Object.prototype.toString.call(/\d/));//[object RegExp]
function Person(){};
console.log(Object.prototype.toString.call(new Person));//[object Object]
function type(obj){
    return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();
}
console.log(type("jerry"));//"string"
console.log(type(12));//"number"
console.log(type(true));//"boolean"
console.log(type(undefined));//"undefined"
console.log(type(null));//"null"
console.log(type({name: "jerry"}));//"object"

console.log(type(function(){}));//"function"
console.log(type([]));//"array"
console.log(type(new Date));//"date"
console.log(type(/\d/));//"regexp"
function Person(){};
console.log(type(new Person));//"object"

 

【6】函數Function類型返回函數代碼

function test(){
    alert(1);//test
}
test.toString();/*"function test(){
                    alert(1);//test
                  }"*/
Function.toString();//"function Function() { [native code] }"

 

【7】數組Array類型返回由數組中每個值的字元串形式拼接而成的一個以逗號分隔的字元串

[].toString();//''
[1].toString();//'1'
[1,2,3,4].toString();//'1,2,3,4'
Array.toString();//"function Array() { [native code] }"

 

【8】時間Date類型返回表示當前時區的時間的字元串表示

(new Date()).toString();//"Sun Jun 05 2016 10:04:53 GMT+0800 (中國標準時間)"
Date.toString();//"function Date() { [native code] }"

 

【9】正則表達式RegExp類型返回正則表達式字面量的字元串表示

/ab/i.toString();//'/ab/i'
/mom( and dad( and baby)?)?/gi.toString();//'mom( and dad( and baby)?)?/gi'
RegExp.toString();//"function RegExp() { [native code] }"

 

【10】錯誤Error類型

Error.toString();//"function Error() { [native code] }"
RangeError.toString();//"function RangeError() { [native code] }"
ReferenceError.toString();//"function ReferenceError() { [native code] }"
SyntaxError.toString();//"function SyntaxError() { [native code] }"
TypeError.toString();//"function TypeError() { [native code] }"
URIError.toString();//"function URIError() { [native code] }"

 


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

-Advertisement-
Play Games
更多相關文章
  • [1]Undefined、Null [2]Boolean [3]String [4]Number [5]Object [6]Function [7]Array [8]Date [9]RegExp [10]Error ...
  • javascript之對象 學習要點: 對象的屬性和方法 對象的原型 一、對象 對象其實就是一種引用類型,而對象的值就是引用對象的實例。 二、創建對象 在javascript中有兩種對象,一種是系統內置對象,另一種是用戶自己創建的對象。 1、使用構造函數創建內置對象 在javascript中有很多內 ...
  • 最近在修改網站的響應式的頁面時,由於都是套樣式頁面,修改過程都是粘貼複製,導致了一些細節問題在IE8下暴露出來: 遇到的問題就是在在Chrome,火狐頁面都正常,唯獨在IE8下頁面樣式顯示亂樣了,但是本地就顯示正常,Tomcat緩存也清楚了,再加上自己也是個小白,周末平靜了一天半終於找到問題的源頭了 ...
  • 很多朋友要UI,我也說過,後臺的UI就是BootStrap,網上很多的。也有朋友喜歡LZ的登錄,LZ的登錄界面也是網上找的,然後稍微做了下修改。 不過既然大家喜歡,那麼LZ就分享給大家。 1、登錄頁面效果 2、登錄頁面代碼 3、首先分享一下 登錄頁面的樣式表,就一個 login.css 4、樣式,大 ...
  • scale(sx,sy)對應matrix(sx,0,0,sy,0,0) 拉伸 rotate(θ)對應matrix(cosθ,sinθ,-sinθ,cosθ,0,0) 旋轉 skew(θx,θy)對應matrix(1,tan(θy),tan(θx),1,0,0) 傾斜 ...
  • 一般一個基本html頁面的結構,如下代碼所示: 基本的頁面有了,那這個頁面里的字元,瀏覽器要怎麼來解析呢。瀏覽器只能根據自己的理解來生成DOM tree。然後按照自己的方式,根據裡面的標簽來生成對應的對象及對象層級關係。如果想把頁面真正的渲染出來就需要告訴瀏覽器按照怎樣一種規則來渲染,如果沒有瀏覽器 ...
  • 接上篇文章接 "Gulp使用小結(一)" 內容如下: 首先,偶在 "gulp demos" 上已經提交了個較通用的慄子...俺琢磨半天,原準備分階段搞些 套路,但是寫完介個慄子之後,覺得已經能覆蓋絕大多數的場景了(懵逼臉.gif)。算噠,當偶偷懶就醬吧,一個套路打天下:) 然後,聊聊這篇值得思考的文 ...
  • 查看效果:http://hovertree.com/texiao/jquery/75/源代碼下載:http://hovertree.com/h/bjaf/8jlpc2wu.htm效果圖如下:代碼如下: 轉自:http://hovertree.com/h/bjaf/sby54kjl.htm 特效彙總: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...