文档章节

JavaScript变量转换

o
 osc_fmg49rzg
发布于 2019/03/20 14:23
字数 931
阅读 3
收藏 0

精选30+云产品,助力企业轻松上云!>>>

JavaScript变量转换 <span id="home">

目录


一、自动转换 <span id="1">

"=="的自动转换

自动转换优先级:number>boolean>String,越小越先转换

(1)Number与Boolean: <span id="1.1">

console.log(0==false); //true
console.log(1==true);  //true
console.log(2==true);  //flase
//这个过程其实是Boolean类型转换为数字的过程

(2)Number与String: <span id="1.2">

console.log(""==0);  //true
console.log("12"==12);  //true
console.log("12a"==12);  //false
//String自动转换时只能转换纯数字的字符串

(3)String与Boolean <span id="1.3">

console.log(""==false);  //true
console.log("s"==true);  //true
//字符串转换为boolean均为true

(4)null的自动转换 <span id="1.4">

null的本质是空对象,自动转换时会处理空对象的引用地址,转换为数字与其他对象的处理

console.log(null==0);  //false
//地址是数字,且肯定不是0

console.log(null==false);  //false
console.log(null==true);  //false
//地址是数字,比较时会将boolean转换为数字

console.log(null=="null");  //false
console.log(null=="");  //false
//地址为数字,比较时会将String转换为数字

(5)undefined的自动转换 <span id="1.5">

undefined表示未定义,不带任何东西,大家可以理解为老顽固(偷笑)

console.log(undefined==0);  //false
//无法自动转换数字

console.log(undefined==false);  //false
console.log(undefined==true);  //false
//无法自动转换boolean

console.log(undefined=="");  //false
console.log(undefined=="undefined");  //false
//无法自动转换为String

console.log(undefined==null);  //true
console.log(undefined===null);  //false
//null是空对象,会被认为是undefined,但严格的来说两者是不相等的

二、强制转换 <span id="2">

1、运算强制转换 <span id="2.1">

"+"会尝试将两端的值尝试转换为字符串或数字。优先级:String>Number

(1)Number与Boolean: <span id="2.1.1">

console.log(1+false); //1
console.log(1+true);  //2

(2)Number与String: <span id="2.1.2">

console.log(""+1);  //"1"
console.log("1"+1);  //"11"
//运算时,String优先级大于Number,Number转换为String

(3)String与Boolean <span id="2.1.3">

console.log(""+false);  //false
console.log(""+true);  //true
console.log(typeof(""+true));  //String
//按照优先级,会将boolean转换为String

(4)null <span id="2.1.4">

console.log(null+1);  //1
//null的本质是空对象,强制转换会转换为0

(5)undefined <span id="2.1.5">

console.log(undefined+0);  //NaN
//强制转换数字时为NaN
console.log(Boolean(undefined));  //false

2、类型强制转换 <span id="2.2">

(1)Number <span id="2.2.1">

String:
这里说下String()和toString()的区别
toString()可以将除了null、undefined以外的一切对象转换为String,且toString()可以接收第二个参数,将字符串的进制进行改变
String()可以将任何对象转换为String,String只有一个传参

Boolean:
console.log(Boolean(0));  //false
console.log(Boolean(1));  //true
console.log(Boolean(2));  //true
console.log(Boolean(-2));  //true
//除0以外均为true

(2)String <span id="2.2.2">

Number:
console.log(Number("1"));  //1
console.log(Number("1a"));  //NaN
console.log(parseInt("1a"));  //1
console.log(parseInt("a1"));  //NaN
//使用Number进行转换时必须是纯数字字符串,否则为NaN
//使用parseInt转换时,头部必须有数字,否则为NaN
//parseInt是全局函数,不属于Number,与Number强制转换有区别

Boolean:
console.log(Boolean(""));  //false
console.log(Boolean("true"));  //true
console.log(Boolean("false"));  //true
//String为空是flase,其他均为true

(3)Boolean <span id="2.2.3">

Number:
console.log(Number(false));  //0
console.log(Number(true));  //1

String:
输出对应的字符串

(4)null <span id="2.2.4">

Number:
console.log(Number(null));  //0

String:
输出对应的字符串

Boolean:
console.log(Boolean(null));  //false

(5)undefined <span id="2.2.5">

Number:
console.log(Number(undefined));  //NaN
//此种方式强制转换依旧为非数字

String:
输出对应的字符串

Boolean:
console.log(Boolean(undefined));  //false

码字不易,后面还会放出各种文章,喜欢的关注一下我吖,你们的关注是我最大的动力

github:github.com/hn-failte

个人博客:hn-failte.github.io

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Java Script语法

JavaScript 语法 JavaScript 是一个程序语言。语法规则定义了语言结构。 JavaScript 语法 JavaScript 是一个脚本语言。 它是一个轻量级,但功能强大的编程语言。 JavaScript 字面量 在编程语...

osc_y9wmeuxa
2019/08/11
4
0
JavaScript 类型转换

JavaScript 类型转换: Number() 转换为数字。 String() 转换为字符串。 Boolean() 转化为布尔值。 。。。。。。 javaScript中有 5 种不同的数据类型: string(字符串) number(数字) boolean...

对方水电费的
2018/10/23
1
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
139
1
js声明引入和变量声明和变量类型、变量

问题:   在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效。 解决:   使用javascript。 作用   可以让网页和用户进行直接简单的交互。   可以让网页制作特...

osc_r74j15vd
2019/03/24
4
0
JavaScript初学者应该了解的二三事!(翻译)

原文链接:http://www.codeproject.com/Articles/333596/What-devs-should-know-about-Javascript 作为javascript初学者,你应该了解这些 (以下js表示javascript的简称) 大家都知道在开发服务...

junwong
2012/02/23
1.6K
6

没有更多内容

加载失败,请刷新页面

加载更多

Asp.net core之NLog

NuGet添加 NLog.Web.AspNetCore。 <PackageReference Include="Microsoft.AspNetCore.App" /> 添加配置文件 新建一个文件nlog.config(建议全部小写,linux系统中要注意), 并右键点击其属性......

一介草民Coder
14分钟前
11
0
.NET中的struct和class有什么区别? - What's the difference between struct and class in .NET?

问题: .NET中的struct和class有什么区别? 解决方案: 参考一: https://stackoom.com/question/3OT/NET中的struct和class有什么区别 参考二: https://oldbug.net/q/3OT/What-s-the-differ...

富含淀粉
56分钟前
23
0
android:layout_weight是什么意思? - What does android:layout_weight mean?

问题: I don't understand how to use this attribute. 我不明白如何使用这个属性。 Can anyone tell me more about it? 谁能告诉我更多关于它的事情? 解决方案: 参考一: https://stacko...

javail
今天
17
0
CSS背景不透明度[重复] - CSS Background Opacity [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: How do I give text or an image a transparent background using CSS? 如何使用CSS为文本或图像提供透明背...

fyin1314
今天
31
0
node http 获取gb2312网页如何转为utf8

最初,我想当然认为是下述做法,但被证明是错误的 const http = require('http'), iconv = require('iconv-lite');const url = 'http://xxx';http.get(url, function(res) { var bo......

高延
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部