转换string_类型转换详解
類型轉換分類
- 顯示類型轉換
- Number( )
- String( )
- Boolean( )
- 隱式類型轉換
- 運算
- 判斷語句
- native調用
- ..............
轉換為字符串
1、轉換為字符串場景
2、轉換字符串規則
把其他類型轉換為字符串,一般都是直接""包起來,只有下面幾種情況比較特殊
- {}: 只有{}普通對象調取toString是調用的Object.prototype.toString,不是轉換為字符串,而是檢測數據類型,返回結果是“[object object]”,更準確的理解應該是如下
``` 1. 如果對象具有toString()方法,則調用這個方法。如果它返回一個原始值,JavaScript將這個值轉換為字符串(如果本身不是字符串的話),并返回這個字符串結果。需要注意的是,原始值到字符串的轉換在表3-2中已經有了詳盡的說明。
轉換為數字
1、轉換為數字場景
2、轉換數字規則
一般隱式轉換都是自動調用的Number
string -> number:
- 如果是純數字的字符串,則直接將其轉換為數字
- 如果字符串中有非數字的內容,則轉換為NaN
- 如果字符串是一個空串或者是一個全是空格的字符串,則轉換為0
- 如果字符串中包含有效的十六進制格式,例如"0xf",則將其他轉換為相同大小的十進制整數值;
Object -> number:
- ``` // 先轉換為字符串,在轉換為數字
- 如果對象具有valueOf()方法,后者返回一個原始值,則JavaScript將這個原始值轉換為數字(如果需要的話)并返回這個數字。
- 否則,如果對象具有toString()方法,后者返回一個原始值,則JavaScript將其轉換并返回 [10] 。
- 否則,JavaScript拋出一個類型錯誤異常。 ```
轉換為布爾
規則:只有 ‘0、NaN、null、undefined、空字符串’ 五個值會變為布爾的FALSE,其余都是TRUE
https://blog.csdn.net/itcast_cn/article/details/82887895?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
==比較規則
題目推薦
{}+[] // 0 ({}+[]) // "[object Object]" []+{} // "[object Object]"{a:0}+1 // 1{}+[] = 0這個怎么理解呢?
現在在寫代碼過程中,每個項目組的規范會有所不同,有些項目組結尾加分號,有些則不加,當不加分號的時候,下面代碼也不會在代碼中報錯,
function getName(){} +[]// 壓縮后 function getName(){}+[] 所以最后 就計算 +[] // 0![] // false ->!(Boolean([])) +[] // 0+![] // 0 []+[] // "" {}+{}//"[object Object][object Object]" []+![] // false => 先計算![],再把[]轉換為String([]) ''+{} //"[object Object]" {}+'' //0// 數組訪問map屬性 []["map"] // ? map() { [native code] } []['map']+[] // "function map() { [native code] }"[]==![] // true 都轉換為數字都是0 let result = 10+false+undefined+[]+'Tencent'+null+true+{}; // "NaNTencentnulltrue[object Object]"
解析過程
》 10 + false // 10,10 + Number(false) = 10 ,10 + 0 = 10 》 10 + undefined // 10 + Number(undefined) = 10 + NaN = NaN 》 NaN + [] = NaN + String([]) = NaN + '' = 'NaN'; 》 'NaN' + 'Tencent' = 'NaNTencent' 》 'NaNTencent' + null = 'NaNTencent' + String(null) = 'NaNTencent' + 'null' = 'NaNTencentnull' 》 'NaNTencentnull' + true = 'NaNTencentnull' + String(true) = 'NaNTencentnull' + 'true' ='NaNTencentnulltrue' 》 'NaNTencentnulltrue' + String({})= 'NaNTencentnulltrue'+'[object Object]' = 'NaNTencentnulltrue[object Object]'參考鏈接
https://wangdoc.com/javascript/features/conversion.html
js類型轉換的各種玩法
總結
以上是生活随笔為你收集整理的转换string_类型转换详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssh作业批改系统_如何看待「全国至少十
- 下一篇: 剔除异常值栅格计算器_R语言系列 数据清