首页 > 其他分享 >数据类型的转换

数据类型的转换

时间:2024-09-07 16:24:40浏览次数:5  
标签:转换 log 数据类型 console 运算符 && false true

数据类型转换

自动转换:js会通过关系运算符,逻辑运算符,算数运算符,if语句等实现隐式转换

根据需要自动进行类型转换,但是转换时会遵循一定的规则

强行转换->通过内置对象的方法强制转换,比如:parseInt(),parseFloat(),Number(),String(),Boolean(),toString()

转为字符串【掌握】

自动转换

类型转换字符串型后的结果
numberNaN、0、或数值对应的字符串
null"null"
boolean"true"、"false"
undefined"undefined"
object若对象存在为其toString()方法的值,若对象不存在为"undefined"
强制转换: String(),object.toString()
转为数字类型【掌握】

自动转换

类型转换为数字型后的结果
string若内容为数字则为相应数字,否则为NaN
null0
booleantrue转为1,false转为0
undefinedNaN
objectNaN

注意:数学运算(特殊情况:+再出现字符串的情况下不是数学运算,而是字符串的拼接)

强制转换 Number()

按照自动转换规则转换 parseInt(string) 、parseFloat(string)

isNaN() 函数用于检查其参数是否是非数字值

注意:parseInt还可以接受第二个参数(2到36之间),表示呗解析的值的进制,返回该值对应的10进制数。parseInt的第二个参数为10,即默认是十进制转十进制

转为布尔类型【掌握】

自动转换

类型转换布尔型后的结果
""或''FALSE
0或0.0FALSE
NaNFALSE
undefinedFALSE
nullFALSE
其它TRUE

强制转换 Boolean(), !!

特殊案例:

console.log(Boolean([])); // true
console.log([] == false);   // true; ==两边的数据类型不一致,需要转为数字进行比较;[]=>字符串''=>数字0
console.log(![] == false); // true  ==的优先级比较低,肯定是先算左边 ![] 然后与后面进行比较,[]转为布尔值为true 取反 false false==false
console.log('0' == false); // true

在==比较的过程中,数据转换的规则 类型一样的几个特殊点:

{} == {} false,对象对比的是堆内存的地址

[] == [] false

NaN == NaN false

类型不一样的转换规则:

  1. null == undefined true,但是换成 === 结果是false(因为类型不一致),剩下null/undefined和其他任何数据类型值都不相等

  2. 字符串 == 对象,要把对象转为字符串

  3. 剩下如果 == 两边数据类型不一致,都是需要转换为数字再进行比较

如果类型都是字符串,就会按照ASCII编码的进行对比

运算符

表达式
常量 1.2 'str' false 
变量 x y 
复合 x+1
操作符:表达式 x+1中的x,1为操作符 运算符:表达式x+1的,+为运算符
算术运算符(+,-, *,/,%【重要】,++【重要】,--)

y=5  :

运算符描述例子x 运算结果y 运算结果
+加法x=y+275
-减法x=y-235
*乘法x=y*2105
/除法x=y/22.55
%取模(余数)x=y%215
++自增x=++y66
x=y++56
--自减x=--y44
x=y--54
用于字符串的 + 运算符

+ (拼接)运算符用于把文本值或字符串变量加起来(连接起来)。

如需把两个或多个字符串变量连接起来,请使用 + 运算符。

“+”算数加和字符串想接 i++ 先赋值,再加1;++i 先加1,再赋值
// 实现各行换色效果
for(var i=1;i<=10;i++){
  if(i%2==0){
      document.write("<font color='red'>"+i+"</font>");
  }else{
      document.write("<font color='green'>"+i+"</font>");
  }
}
注意:正号有隐式类型转换功能
alert(typeof(+'5'))  // number
 比较运算符(>,<,>=,<=,==,!=不等于,!==不全等于)【了解】
x=5  :
运算符描述比较返回值
==等于x==8false
x==5true
===绝对等于(值和类型均相等)x==="5"false
x===5true
!= 不等于x!=8true
!== 不绝对等于(值和类型有一个不相等,或两个都不相等)x!=="5"true
x!==5false
> 大于x>8false
< 小于x<8true
>= 大于或等于x>=8false
<= 小于或等于x<=8true
比较运算符  专门用作判断,返回值结果为boolean
console.log(1.2+1.1==2.3) //true
console.log(1.2-1.1==0.1) //false
总结:比较运算符的结果是boolean类型
 赋值运算符(=【掌握】,+=【掌握】,-=, *=,/=,%=)

给定 x=10  y=5  

运算符例子等同于运算结果
=x=yx=5
+=x+=yx=x+yx=15
-=x-=yx=x-yx=5
*=x*=yx=x*yx=50
/=x/=yx=x/yx=2
%=x%=yx=x%yx=0
= 赋值运算符
var a = 10;
var arr = ['张三','李四','王武','孙刘','马奇'] 
+= 表示给num+1,再把相加之后的结果赋给num这个变量
var i=10;
i+=1 // i=i+1 效果一样  i++

使用场合:累加求和,字符串拼接

逻辑运算符(!,&&,||)【两边均为表达式】【重要】

给定 x=6 以及 y=3:

运算符描述例子
&&and(x < 10 && y > 1) 为 true
||or(x==5 || y==5) 为 false
!not!(x==y) 为 true
运算符描述解释
!not逻辑取反,(逻辑非) 如果操作数能够转换为 true 则返回 false;否则返回 true。
&&and逻辑且;只有两个操作数都为 true 时,才返回 true,否则返回 false。
||or逻辑或;只要一个操作数成立时,不在执行第二个式子,反之,第一个式子不成立,执行第二个式子。
??(了解)空值合并运算符,如果左侧的表达式为 null或者 undefined 时,返回其右侧表达式,否则返回左侧表达式。
逻辑运算符用于测定变量或值之间的逻辑: || 存在 断点问题,第一个式子成立,不在执行第二个式子;如果第一个式子不成立,执行第二个登式(真假为真,假假为假,真真为真) && 存在 断点问题,如果&&前面的值为false,后面的不再运行 &&式子两边同时成立,执行的是if(true),只要有一个不成立。或两个都不成立执行false ||运算方法[真前假后]:
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。


1、只要 || 前面为 false,不管 || 后面是 true 还是 false,都返回 || 后面的值。
2、只要 || 前面为 true,不管 || 后面是 true 还是 false,都返回 || 前面的值。
&&运算方法:
  只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
  只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;


1、只要 && 前面是 false,无论 && 后面是 true 还是 false,结果都将返 && 前面的值;
2、只要 && 前面是 true,无论 && 后面是 true 还是 false,结果都将返 && 后面的值;
使用技巧:|| 或 运算符使用技巧
// 如果你必须给一个变量赋默认值,可以简单的这样写
var a;
console.log(a) // undefined
a = a||'default value';
console.log(a)  // default value
a = a||'new value';
console.log(a)  // new value
// 在函数中传參使用,如果传參就使用传递过来的参数,没有传參就使用默认值
function show(10){
  var shownum = num || 20;
  console.log(shownum);
}
show(10);
思考:
console.log( 0 || 1 ); // 1
console.log( 1 || 2 ); // 1
console.log( 0 && 1 ); // 0
console.log( 1 && 2 ); // 2
 条件运算符【三元运算符/三目运算符】【重要】
条件表达式?结果1:结果2 如果条件表达式结果为true则返回结果1 如果条件表达式结果为false则返回结果2
// 条件 ? 值 1 : 值 2
var m=100>99?66:33
alert(m)

运算符的优先级

下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺序求值。 小括号>算术运算符>比较运算符>逻辑运算符>赋值运算符

JSON数据类型

JSON:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式 主要作用: JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端向网页传递数据 。 特性: json的键不能重复,如果键是一个完整的单词,可以直接写,如果键里面包含了空格,要用引号引起来 格式:
{key: value, key: value}
数据为 键/值 对。
多个数据由逗号分隔
value可以为任意类型
定义复杂的json格式
var address = {
    "city":"成都",
    "province":'四川',
    "aaa":{
       "name":'Test',
       "value":{
           "value":"123"
       }
     },
     "bbb":[{
       "name":"lisi"
     },{
       "name":"zhangsan"
     },{
       "name":"wangwu"
     }]
};

标签:转换,log,数据类型,console,运算符,&&,false,true
From: https://blog.csdn.net/weixin_71949204/article/details/141984278

相关文章

  • aspose word转换pdf文件后将pdf文件转换为图片png
    asposeword转换pdf文件后将pdf文件转换为图片png链接:asposeword模板文件生成pdfhttps://www.cnblogs.com/oktokeep/p/16615900.htmlpackagecom.example.core.mydemo.aspose;importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.rendering.ImageType;......
  • json字符串转义格式化后再转换处理demo StringEscapeUtils.unescapeJava
    json字符串转义格式化后再转换处理demoStringEscapeUtils.unescapeJava报错关键字:illegalidentifierExpectedBEGIN_OBJECTbutExpectednameatpackagecom.example.core.mydemo;importcom.alibaba.fastjson.JSON;importcom.fasterxml.jackson.core.JsonProcessingE......
  • NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)
    目录NAT技术介绍NAT转换表引入介绍NAPT技术介绍 NAPT替换过程NAPT原理注意点NAT缺陷无法直接访问其他内网主机内网穿透工具其他 NAT技术介绍NAT是一种网络技术,它允许在一个公共IP地址和多个私有IP地址(入口路由器的wan口地址和私网内的私有ip)之......
  • [C#基础3] C#数据类型
    Notion原笔记页面1.数据类型上两图摘自刘铁猛的b站网课视频1.1文本值的定义文本值是一种永不更改的常量值。之前,你在“输出”控制台中显示了文本字符串。换句话说,你希望在“输出”控制台中显示由字母数字字符H、e、l、l和o等组成的字符串。1.2字符文本(char)与字......
  • JAVA将中文转换为拼音
    importcom.github.promeg.pinyinhelper.Pinyin;importcom.hankcs.hanlp.HanLP;importnet.sourceforge.pinyin4j.PinyinHelper;importnet.sourceforge.pinyin4j.format.HanyuPinyinCaseType;importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;importn......
  • 1.Java基础变量和数据类型练习题
    我写的都是键盘录入,运行没结果,不妨按几下试试 1.输出个人简历packagecom.hz.test01;publicclassZuoye{ publicstaticvoidmain(String[]args){ //inti=0;整形 //byteb=0;字节类型 //shorts=0;短整型 //longl=20l;长整型 //floatf=3.33F;单精度......
  • windows C++ 并行编程-转换使用取消的 OpenMP 循环以使用并发运行时
    某些并行循环不需要执行所有迭代。例如,搜索值的算法可以在找到值后终止。OpenMP不提供中断并行循环的机制。但是,可以使用布尔值或标志来启用循环迭代,以指示已找到解决方案。并发运行时提供允许一个任务取消其他尚未启动的任务的功能。此示例演示如何将一个不需要运行所有......
  • 两个月冲刺软考——逻辑地址与物理地址的转换(例题+讲解);文件类型的考点
    1.已知计算机系统页面大小和进程的逻辑地址,根据页面变换表(页号-物理块号),求变换后的物理地址。首先介绍几个公式:逻辑地址=页号+页内地址(默认为32机位)物理地址=物理块号+物理地址的页内地址其中:页内地址=物理地址的页内地址解题:由于页面大小为4K,即4K=2的1......
  • C语言数据类型和变量
    引言好久不见大家,最近因为在忙开学的事情很久没有更新,很感谢大家的支持,我会继续努力滴!!!前篇链接:http://#小程序://CSDN/Rz9Z9VlUkPV8ttg那我们长话短说:开始我们的这一节--------C语言数据类型和变量数据类型介绍C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。......
  • 字符串其他数据类型之间的转换
    字符串和其他数据类型转换      //因为文件数据存储在本地是以字符串的形式或者二进制数据流的形式进行存储的      //因此我们需要把我们创建的数据类型数据转化为字符串才能在本地持久化存储      //用户输入的内容也是字符串我们......