首页 > 编程语言 >JavaScript 类型转换

JavaScript 类型转换

时间:2023-01-25 20:23:36浏览次数:38  
标签:类型转换 转换 log JavaScript 字符串 console 隐式

JavaScript 中有两种类型转换:隐式类型转换和显式类型转换。

隐式类型转换指 JavaScript 在运行时自动将一种类型转换为另一种类型。例如,在数学运算中,JavaScript 会将字符串转换为数字。

显式类型转换指在代码中使用内置函数或全局对象将一种类型显式地转换为另一种类型。例如,使用 Number() 函数将字符串转换为数字,使用 String() 函数将数字转换为字符串。

另外,JavaScript 还提供了一些常用的类型转换函数,如 parseInt() 和 parseFloat() 用于将字符串转换为整数和浮点数。

还有一些其它的方法来进行类型转换,如:

  • 使用 + 运算符将字符串转换为数字
  • 使用 valueOf() 方法将对象转换为原始类型
  • 使用 toString() 方法将数字、布尔值、对象转换为字符串

需要注意的是,在 JavaScript 中使用 == 运算符进行比较时会发生隐式类型转换,而使用 === 运算符进行比较时不会发生类型转换,所以在比较值的相等性时建议使用 === 运算符。

需要注意的是,JavaScript 的类型转换有一些需要特别注意的地方:

  • 当一个值被赋值给另一个变量时,它会被隐式地转换为该变量的数据类型。
  • 当一个值用于布尔运算时,它会被隐式地转换为布尔值。
  • 当一个值用于数学运算时,它会被隐式地转换为数字。
  • 当一个值被作为字符串连接时,它会被隐式地转换为字符串。
  • 当一个值被作为对象的属性时,它会被隐式地转换为字符串。

 

以下是一些 JavaScript 类型转换的示例:

1、隐式类型转换:

let num = "42";
console.log(num + 2); // "422"

2、显式类型转换:

let num = "42";
console.log(Number(num) + 2); // 44

3、parseInt() 和 parseFloat() 函数转换:

console.log(parseInt("42", 10)); // 42
console.log(parseFloat("3.14")); // 3.14

4、toString() 函数转换:

console.log((42).toString()); // "42"
console.log((true).toString()); // "true"

5、布尔值转换:

console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true

6、运算符转换:

console.log(+"42") // 42

7、使用 Object() 函数将原始类型转换为对象:

console.log(typeof Object(42)); // object

8、使用 Symbol() 函数将字符串转换为 Symbol 类型:

console.log(typeof Symbol("hello")); // symbol

9、使用 JSON.parse()JSON.stringify() 函数将字符串转换为对象和对象转换为字符串:

let jsonString = '{"name":"John","age":30}';
let obj = JSON.parse(jsonString);
console.log(obj); // { name: 'John', age: 30 }

let jsonString2 = JSON.stringify(obj);
console.log(jsonString2); // '{"name":"John","age":30}'

需要注意的是,上述类型转换方式需要满足一定的条件,需要注意数据的合法性,如 JSON.parse() 和 JSON.stringify() 方法只能解析和序列化 JSON 格式的字符串。

还有一些需要注意的地方:

  • 当使用 parseInt() 和 parseFloat() 方法将字符串转换为数字时,如果字符串不符合数字格式,则会返回 NaN,因此需要使用 isNaN() 函数判断转换结果是否为 NaN。

  • 当使用 JSON.parse() 方法将字符串转换为对象时,如果字符串不符合 JSON 格式,则会抛出错误。

  • 当使用 Symbol() 函数将字符串转换为 Symbol 类型时,在内部存储的是一个符号,不是字符串。因此,当比较两个 Symbol 类型的值时,它们只有在内存中的地址相同时才相等。

  • 当使用 Object() 函数将原始类型转换为对象时,会创建一个包装对象。因此,在使用包装对象时需要注意包装对象和原始值之间的差异。

在使用类型转换时,需要根据实际需求进行选择,并且要注意隐式类型转换的影响。

标签:类型转换,转换,log,JavaScript,字符串,console,隐式
From: https://www.cnblogs.com/yuzhihui/p/17067231.html

相关文章

  • JavaScript学习笔记—对象的序列化
    JS中的对象使用时都是存在于计算机的内存中序列化指将对象转换为一个可以存储的格式,在JS中对象的序列化通常是将一个对象转换为字符串(JSON字符串)序列化的用途,对象转换为......
  • 说一说JavaScript有几种方法判断变量的类型?
    typeof、instanceof、Object.prototype.toString.call()(对象原型链判断方法)、constructor(用于引用数据类型)标准回答JavaScript有4种方法判断变量的类型......
  • JavaScript学习笔记—对象的解构
    constobj={name:"孙悟空",age:18,gender:"男"};let{name,age,gender}=obj;//声明变量同时解构变量console.log(name,age,gender);//孙悟空18男let......
  • JavaScript学习笔记—数组的解构赋值
    constarr=["孙悟空","猪八戒","沙和尚"];let[a,b,c]=arr;//解构赋值console.log(a,b,c);//孙悟空猪八戒沙和尚let[d,e,f,g]=["唐僧","白骨精",......
  • JavaScript 对象合并
    JavaScript中有多种方法可以合并对象。1、使用Object.assign()方法:它可以将一个或多个对象的属性复制到目标对象中。例如:constobj1={a:1,b:2};constobj2=......
  • JavaScript 数组合并
    JavaScript中有多种方法可以将多个数组合并成一个数组。1、使用Array.prototype.concat()合并:concat()方法可以将多个数组合并成一个新数组。letarr1=[1,2,3];......
  • JavaScript 数组去重
    JavaScript中有多种方法可以实现数组去重,下面是几种常用的方法:1、使用Set去重:Set数据结构中不能有重复元素,可以将数组转成Set类型,再转回数组。letarr=[1,2,3,4,......
  • JavaScript 排序算法
    JavaScript提供了Array.prototype.sort()方法来对数组中的元素进行排序。默认情况下,sort()方法使用字典序来排序字符串。如果要按照数字大小进行排序,需要传递一个比较......
  • JavaScript 运算符&算数运算符
    一、运算符运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。JavaScript中常用的运算符有:算数运算符递增和递减运算符比较运算符逻辑运算符赋......
  • JavaScript学习笔记—函数的bind
    bind():函数的方法,可以用来创建一个新的函数bind可以为新函数绑定thisbind可以为新函数绑定参数functionfn(a,b,c){console.log("fn执行了~~~",this);consol......