数据类型
可能含有值的数据类型
- 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()
- 解析字符串并返回整数
```javascript
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
var 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 |