資料型別的轉換
資料型別的轉換
當計算機所給的資料型別不是我們所要的型別的時候 這時候需要資料型別的轉換
轉換方式
強制轉換
1 字元轉數值
parseint(資料或變數)
從左到右依次檢測 當遇到非數字的字元 停止轉換
如果有小數點 將會忽略小數點後邊的內容 其實就是把小數點看做成了非數字的字元 停止轉換了
如果第乙個就是非數字的字元 則輸出nan
nan not a number 不是乙個數字 任何不是數字的字元都是nan
nan 是乙個不是數字的數值型資料
nan 非法的數值運算結果
parsefloat()
從左到右依次檢測 當遇到非數字的字元 停止轉換
如果有小數點 會把小數點後面的內容進行轉換 最多小數點後16位
如果第乙個就是非數字的字元 則輸出nan
math.round()
不是專門用來字元轉數值的 提供了一種方法
嚴格轉換:只要字元中包含非數字的字元 就是nan
取整的 取就近的整數 3.5 ,3.6 取 4 -3.5 取 -3 -3.6取-4
number()
不是專門用來字元轉數值的
嚴格轉換: 只要字元中包含非數字的字元 就是nan
如何選擇? 按需選擇
數值轉字元
.tostring()
直接轉換 相當於把數值加了引號
.tofixed(n)
保留幾位小數 n就等於幾 遵循四捨五入原則
其他轉布林
布林轉數值
其他轉字元
隱式轉換(系統預設自動轉換)
算數運算
只要+號左右兩邊出現乙個字元型數字 其結果一定為字元
算數運算為 - * / % 時 系統會把字元預設轉化為數值然後進行計算 結果一定為數值
關係運算
< > <= >= != == 這些運算當出現有乙個為數值時 會發生隱式轉換 把另一方轉化為數值進行比較
當兩邊都為字元型數字時 會逐位比較 一有結果就停止
!== === 進行關係運算 不會出現隱式轉換
資料運算子
資料的運算子
算術運算子
+ 加法 - 減法 * 乘法 / 除法 % 取餘
總結出 當算數運算為加法時 只要存在乙個字元型數字 執行的結果就是拼接 將資料組合起來 比如 a=10 b="2" 結果 102
只要+號左右兩邊出現乙個字元型數字 其結果一定為字元
當算數運算為 - * / % 時 只要資料報含字元型數字時 系統缺省會把字元轉成數值 然後進行計算 進行了隱式轉換
算數運算為 - * / % 時 系統會把字元預設轉化為數值然後進行計算 結果一定為數值
關係運算子 結果為布林值
< 大於 > 小於 >= 大於等於 <= 小於等於
!= 不等於 !== 不全等 數值不等或型別不等
== 等於 === 恆等於 數值相等且型別相等
總結出
1 > < >= <= != == 關係運算中 只要一方為數值 系統就會把進行隱式轉換 把字元轉換為數值 然後在進行比較 比較的結果為布林值
2 !== 不全相等 值不相等或型別不相等 滿足任一條件就為ture
=== 恒等 值相等且型別相等 需要同時滿足值相當並且型別相等 不會進行隱式轉換
3 當關係運算子兩邊都是字元時 逐位比較 有結果就停止 即10 中的1 和 4比較
邏輯運算子
或 ||
只要其中一邊出現true 則結果為true
且 &&
必須兩邊都為true 則結果為true
非 !
取反賦值運算子
= 把等號右邊的內容 存到等號左邊的變數中
+= -= *= /= %=
總結
等號右邊的資料會被賦值到等號左邊的變數中
當變數中有值存在是 後寫的會覆蓋原來寫的
先計算 再賦值
一元運算子
++ --
自增++a 前自增 先計算 後使用
a++ 後自增 先使用 後計算
自減--a 前自減 先計算 後使用
a-- 後自減 先使用 後計算
資料型別的轉換 運算子
在js中所有的數值都是number型別,包括整數和浮點數 小數 表示的數字的最大值 number.max value 大於0的最小值 number.min value 如果使用number表示的數字超過了最大值,則會返回乙個 檢查資料型別用 typeof nan 是乙個特殊的數字,表示not a n...
js資料型別的轉換 運算子
day2 1 資料型別的轉換 a.為什麼要轉換?當使用者 計算機或者其他程式給了乙個資料,不是我們想要的資料型別,需要轉換成當前程式所需的資料型別,再進行運算 b.資料型別的轉換方法 強制轉換 顯示轉換 主動轉換 字元轉數值 parseint 要轉換的資料或者變數 從左向右一次檢測,遇到非數字字元,...
運算子與資料型別轉換
小白個人筆記 如有錯誤,請指正。1.算術運算子 一般來說就是加 減 乘 除 取餘 一般用於number型別的數字運算。注意 當 兩邊有乙個為spring型別,則執行拼接操作。例如 這裡c的值為100100 而不是200。算術運算子裡有一元運算子。或者 意思是自身 1或者 1。運算子前置後置對於變數本...