JavaScript基礎(二)變數

daotin發表於2018-05-03

變數

變數的宣告和初始化

var number; // 變數的宣告,沒有賦值
var name = "Daotin"; // 變數的初始化

命名規則(駝峰命名)

  • 變數命名必須以字母或是**下標符號”_”或者”$”**為開頭。
  • 變數名長度不能超過255個字元。
  • 變數名中不允許使用空格,首個字不能為數字。
  • 不用使用指令碼語言中保留的關鍵字及保留符號作為變數名。
  • 變數名區分大小寫。(javascript是區分大小寫的語言)
  • 漢語可以作為變數名。但是不建議使用!

資料型別

檢視資料型別的方法:typeof name;typeof(name);

PS:null的資料型別是 Object。

基礎資料型別:

String,Number,Boolean,unsigned、null

複雜資料型別:

Object,function,Array,Date,Error等

Number

一、進位制

十進位制:var num = 10;
八進位制:var num = 012;   // 0開頭
十六進位制:var num = 0xA; // 0x開頭

二、數值範圍

最小值: Number.MIN_VALUE ,這個值為: 5e-324

最大值: Number.MAX_VALUE ,這個值為: 1.7976931348623157e+308

無窮大Infinity

無窮小-Infinity

三、不要用小數去驗證小數

var num1 = 0.1;
var num2 = 0.2;
console.log(num1+num2); // 0.30000000000000004
console.log(0.07*100); // 7.000000000000001

四、NaN(Not a Number)

本來應該是個數值的,但是並不是一個數值。

console.log(“abc”/18); // 結果是NaN
Undefined 和任何數值計算為 NaN;
NaN 與任何值都不相等,包括 NaN 本身。
isNaN(); 任何不能被轉換為數值的值都會導致這個函式返回 true。

String

  1. 使用單引號或者雙引號均可。
  2. 獲取字串的長度使用 變數名.length
  3. 無法輸出的字元,記得使用轉義字元( , , “, 等)
  4. 字串拼接可以使用 + ,像 Java 一樣。
  5. 當一個是字串,另一個是數字,並且使用 乘,減,除 號的時候,字串會轉換成數字進行計算,轉換失敗返回NaN。

js沒有字元型別只有字串型別,字串使用 “” 或者 “ 都是可以的。

字串是常量不可變的。

var str = "hello";
str[0] = "w";
console.log(str); // 還是 hello

var str = "hello";
str = "world";
console.log(str); // 是 world,這個不是改變了當前str地址的字串的值,而是str指向了新的字串,舊的字串的值仍然沒有更改

Boolean

Boolean型別只有兩個字面量: true 和 false 。但是所有型別均可與這兩個 Boolean 值等價的值。

true:true、除0數字、“something”、Object(任何物件)為true

false:false、0 、“”、undefined 、null為false

Undefined 與 null

雖然 undefined 和 null 都為 false,但是他們的區別是:

在進行數字運算的時候,null + 10 = 10;undefined + 10 = NaN.

任何資料型別和undefined運算都是NaN;

任何值和null運算,null可看做0運算。


資料型別轉換

其他型別轉換成String

1 變數+"" 或者 變數+"其他變數"
2 String(變數)
3 變數.toString(); // 注意:undefined和null不可以
var bool = true;
var num = 111;
var aaa;
var bbb = null;

console.log(typeof(bool+"")); // string
console.log(typeof(num+""));// string
console.log(typeof(aaa+""));// string
console.log((aaa+""));// undefined
console.log(typeof(bbb+""));// string

其他型別轉換成 Number

PS: 此轉換容易產生NaN,一旦被轉換的變數中含有非數字字元,都容易出現NaN.

變數 -*/ 一個數字(有非數字字元會出現NaN)
// var num1 = “11”- 0; var num2 =“11” * 1;var num =“11”/1;
Number(變數);  // (有非數字字元會出現NaN)
parseInt() 和 parseFloat()(譯為取整和取浮點數)
空字串parseInt("")和parseFloat("")返回NaN,Number("")返回0

parseInt(變數):如果變數中首字元為字母則結果為NaN。否則取出現首個非數字前的整數。 //123 = parseInt(“123.123aaaa”);

parseFloat(變數):如果變數中首字元為字母則結果為NaN。否則取出現首個非數字前的浮點數。(如果沒有小數的話取整)  // 123.123 = parseFloat(“123.123aaaa”);

特別提示:

true數值為1;false為0;
null的數值型別為0;
undefined無數值型別或者為NaN;

其他型別轉換成 Boolean

任何資料型別都可以轉換成boolean型別(Boolean();),所以和以往兩個轉換不同;


相關文章