JavaScript由三部分組成:javascript
JavaScript註釋由兩部分組成:java
// 單行註釋
複製代碼
/* 多行註釋 不能嵌套使用 */
複製代碼
script標籤能夠有多個,按順序執行數組
<script src='other.js'> // 要注意src指向的文件 路徑
// 若是連接了外部js文件,script標籤內的代碼就不執行了
// 此處不能添加js代碼
</script>
複製代碼
<script>
console.log('hello world'); // 控制檯輸出
alert('hello world'); // 提示框輸出
</script>
複製代碼
document.write('hello world');
複製代碼
console.log('hello world');
複製代碼
alert('hello world');
複製代碼
做用: 用來給變量、函數等命名瀏覽器
規則:bash
由字母、數字、下劃線、$組成cookie
不能以數字開頭網絡
不能使JavaScript中的關鍵字和保留字app
保留字: 函數
區分大小寫ui
遵循駝峯命名原則
見名知意
基本數據類型
數字(Number)
字符串(String)
特色:
布爾值(Boolean)
包括 true 和 false,經常使用在判斷語句
falsy值:
console.log(new Boolean()); // false
console.log(new Boolean(0)); // false
console.log(new Boolean(null)); // false
console.log(new Boolean("")); // false
console.log(new Boolean(false)); // false
console.log(new Boolean(NaN)); // false
複製代碼
truthy值: 除了falsy值就是truthy
console.log(new Boolean(1)); // true
console.log(new Boolean(true)); // true
console.log(new Boolean('true')); // true
console.log(new Boolean('false')); // true
console.log(new Boolean('Bill Gates')); // true
複製代碼
Undefined
聲明但未初始化的變量會獲得undefined
var a;
console.log(a); // undefined
複製代碼
Null
一個沒有任何引用的空對象
var a = null;
console.log(typeof a); // object
複製代碼
Symbol
凡是屬性名屬於 Symbol 類型,就都是獨一無二的,能夠保證不會與其餘屬性名產生衝突
let a = Symbol('a');
let b = Symbol('a');
typeof s; // Symbol
console.log(a === b); // false
複製代碼
非基本數據類型
typeof + 變量名
typeof 不能正確判斷引用數據類型,如數組:
typeof [] => 'Object'
複製代碼
變量名 + instanceof String/Number/Boolean/Object/Array/Function
instanceof 不能判斷 null 和 undefined(報錯), 以及用字面量方式建立的 基本數據類型(必須用new 關鍵字去建立基本數據類型)
'1' instanceof String // false
new String('1') instanceof String // true
複製代碼
變量名 + .constructor === String/Number/Boolean/Array/Function/Object
constructor 不能判斷 null 和 undefined(報錯), 下面這種狀況也不能正確判斷
function Fn(){};
Fn.prototype=new Array();
var f=new Fn();
console.log(f.constructor===Fn); // false
console.log(f.constructor===Array); // true
複製代碼
Object.prototype.toString.call(變量名) === '[object String/Number/Array/Date/Function/Object]'
判斷數據類型最可靠的方法
var a = Object.prototype.toString;
console.log(a.call("aaa")); // [object String]
console.log(a.call(1)); // [object Number]
console.log(a.call(true)); // [object Boolean]
console.log(a.call(null)); // [object Null]
console.log(a.call(undefined)); // [object Undefined]
console.log(a.call([])); // [object Array]
console.log(a.call(function() {})); // [object Function]
console.log(a.call({})); // [object Object]
複製代碼
變量
常量