数据类型
可能含有值的数据类型
- string 字符串
 - number 数字
 - boolean布尔值
 - object对象
 - 
对象类型
 object 对象
- date 日期
 - 
不能包含值的类型
 null
- undefined
typeof 运算符
typeof 是运算符,用于确定变量的数据类型
NaN 数据类型为数值
数组数据类型为对象
日期数据类型为对象
null 数据类型是对象
未定义变量的数据类型是 undefined
尚未赋值的变量的数据类型是 undefined 
constructor 属性
constructor 属性返回所有 JavaScript 变量构造器函数
<!DOCTYPE html><html><body><h2>JavaScript constructor 属性</h2><p>constructor 属性返回变量或对象的构造器函数。</p><p id="demo"></p><script>document.getElementById("demo").innerHTML ="john".constructor + "<br>" +(3.14).constructor + "<br>" +false.constructor + "<br>" +[1,2,3,4].constructor + "<br>" +{name:'john', age:34}.constructor + "<br>" +new Date().constructor + "<br>" +function () {}.constructor;</script></body>
- constructor 可以确定某个对象是否为数组
 
<!DOCTYPE html><html><body><h2>JavaScript 数组</h2><p>这个“自制的” isArray() 函数在数组上使用时返回 true:</p><p id="demo"></p><script>var fruits = ["Banana", "Orange", "Apple", "Mango"];document.getElementById("demo").innerHTML = isArray(fruits);function isArray(myArray) {return myArray.constructor.toString().indexOf("Array") > -1;}</script>+
- constructor 可以确定某个对象是否为日期 ```javascript <!DOCTYPE html>
 
JavaScript 日期对象
这个“自制的” isDate() 函数在日期上使用时返回 true:
true
<a name="zQW2Q"></a># 数据类型转换<a name="W7HxO"></a>## 转换成字符串- string()——全局方法- tostring()——数学方法- toExponential()- 返回字符串,对数字进行摄入,并使用指针计算法来写- toFixed()- 返回字符串,对数字进行舍入,并使用指定位数的小数来写- toPrecision()- 返回字符串,并把数字写为指定的长度<a name="NJgUg"></a>## 转换成数值- number()——全局方法- 含有字符串的转换为数字- 空字符串转换成 0- 其他字符串转换成 NaN- parseFloat()- 解析字符串并返回字符串- parseInt()- 解析字符串并返回整数```javascriptNumber("3.14") // 返回 3.14Number(" ") // 返回 0Number("") // 返回 0Number("99 88") // 返回 NaNvar y = "5"; // y 是字符串var x = + y; // x 是数字var y = "Bill"; // y 是字符串var x = + y; // x 是数字 (NaN)d = new Date();Number(d) // 返回 1617537356026
数据类型自动转换
5 + null // 返回 5 因为 null 被转换为 0"5" + null // 返回 "5null" 因为 null 被转换为 "null""5" + 2 // 返回 52 因为 2 被转换为 "2""5" - 2 // 返回 3 因为 "5" 被转换为 5"5" * "2" // 返回 10 因为 "5" 和 "2" 被转换为 5 和 2
位运算符
&
|
^
xor,如果两位只有一位为 1,则设置为 1
| 运算 | 结果 | 
|---|---|
| 1111 ^ 0000 | 1111 | 
| 1111 ^ 0001 | 1110 | 
| 1111 ^ 0010 | 1101 | 
| 1111 ^ 0100 | 1011 | 
~
<<
>>
>>>
| 操作 | 结果 | 等同于 | 结果 | 
|---|---|---|---|
| 5 & 1 | 1 | 0101 & 0001 | 0001 | 
| 5 | 1 | 5 | 0101 | 0001 | 0101 | 
| 5 ^ 1 | 4 | 0101 ^ 0001 | 0100 | 
| ~ 5 | 10 | ~0101 | 1010 | 
| 5 << 1 | 10 | 0101 << 1 | 1010 | 
| 5 >> 1 | 2 | 0101 >> 1 | 0010 | 
| 5 >>> 1 | 2 | 0101 >>> 1 | 0010 | 
