JS 类型转换

typeof

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript typeof 运算符</h2>

<p>typeof 运算符返回变量、对象、函数或表达式的类型。</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
  typeof "john" + "<br>" +
  typeof 3.14 + "<br>" +
  typeof NaN + "<br>" +
  typeof false + "<br>" +
  typeof [1,2,3,4] + "<br>" +
  typeof {name:'john', age:34} + "<br>" +
  typeof new Date() + "<br>" +
  typeof function () {} + "<br>" +
  typeof myCar + "<br>" +
  typeof null;
</script>

</body>
</html>

在这里插入图片描述

请注意:
NaN 的数据类型是数值
数组的数据类型是对象
日期的数据类型是对象
null 的数据类型是对象
未定义变量的数据类型是 undefined
尚未赋值的变量的数据类型也是 undefined
您无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。
typeof 的数据类型
typeof 运算符不是变量。它属于运算符。运算符(比如 + - * /)没有数据类型。
但是,typeof 始终会返回字符串(包含运算数的类型)。

constructor

constructor 属性返回所有 JavaScript 变量的构造器函数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>类型转换</title>
</head>
<body>
<h2>JavaScript constructor 属性</h2>

<p>constructor 属性返回变量或对象的构造器函数。</p>

<p id="demo"></p>
<script>
    document.getElementById("demo").innerHTML =
        "join".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>
</html>


在这里插入图片描述

String

全局方法String() 能够把数字转换为字符串。
它可用于任意类型的数字、文字、变量或表达式:

String(x)         // 从数值变量 x 返回字符串
String(123)       // 从数值文本 123 返回字符串
String(100 + 23)  // 从表达式中的数值返回字符串

全局方法 String() 能够将布尔转换为字符串。

String(false)        // 返回 "false"
String(true)         // 返回 "true" 

布尔方法 toString() 同理。

false.toString()     // 返回 "false"
true.toString()      // 返回 "true"

把日期转换为字符串

String(Date())      // 返回 "Tue Jul 27 2021 12:27:55 GMT+0800 (中国标准时间)"

日期方法 toString() 同理。

Date().toString()   // 返回 "Tue Jul 27 2021 12:27:55 GMT+0800 (中国标准时间)"

在这里插入图片描述

Number()

全局方法 Number() 可把字符串转换为数字。

Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0
Number("")        // 返回 0
Number("99 88")   // 返回 NaN

一元 + 运算符
一元的 + 运算符可用于把变量转换为数字:

实例

var y = "5";      // y 是字符串
var x = + y;      // x 是数字

如果无法转换变量,则仍会成为数字,但是值为 NaN(Not a number)

var y = “Bill”; // y 是字符串
var x = + y; // x 是数字 (NaN)

把布尔转换数值
全局方法 Number() 也可把布尔转换为数字。

Number(false)     // 返回 0
Number(true)      // 返回 1

把日期转换为数字

d = new Date();
Number(d)          // 返回 1627361408159

日期方法 getTime() 同理。

自动类型转换

如果 JavaScript 尝试操作一种“错误”的数据类型,它会试图将该值转换为“正确”的类型。

结果并不总是你所期望的:
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值