JS变量数据

数值变量:

  • NaN:notanumber,不是一个数,它表示变量存储的数据类型,本身属性数字类型。NaN虽然表示是一个非数字,但是一般是算术运算执行的结果,因此NaN仍然是数值类型;执行运算时,非加法运算,只要有NaN参与,执行结果都是NaN;如果是加法运算,有NaN执行字符串拼接操作,都是数值执行加法运算;NaN永远不会等于NaN即NaN!=NaN,执行结果是false。
  • 不能用NaN来判断一个数是否不是数值:NaN==NaN是不对的

字符串变量:

  • 在JavaScript中,单引号,双引号的字符串,都不能解析变量,即只能显示为变量名称的字符串,不会显示为变量中存储的数值。要解决这一问题,有两种方法:字符串拼接、使用模板字符串(``:F1键左下面的键)。比如:console.log('今天的空气污染是:airPollution')console.log(今天的空气污染是:${airPollution})

数据类型检验:

  • 在JavaScript中,数据类型的检测使用typeof()方法/函数。typeof(变量/数据),执行结果是变量中存储数据的数据类型;typeof还有一种语法形式typeof+空格+变量,但是这种语法形式不推荐使用,容易程序执行错误。注意:typeof()并不能非常准确的表示每一种数据类型,一般是用于判断布尔类型、数值类型、字符串类型和undefined类型。

  • 原因:在JavaScript程序中,变量中存储的数据类型虽说没有限制,可以存储任何符合JavaScript语法规范的数据类型,但是在JavaScript程序的执行过程中,往往需要变量中存储的数值是某种特定的数据类型,别的数据类型不行,此时就需要进行数据类型的转化。总之,它是为了我们的需求所存在的。

  • 结论:整数、浮点数、NaN执行结果都是number;布尔类型的执行结果是boolean;字符串类型的执行结果是string;undefined执行结果undefined;null执行结果object。typeof(typeof(变量/数据) )的结果始终为string

数据类型转换:

  • 分类:自动转化和强制转化。自动转化是计算机程序,自动完成的转化,自动转化不是任何时候都会发生的,只有特殊情况,才会发生。强制转化是程序员强行完成的转化。下面针对自动转换和强制转换进行说明。

  • 第一个,在if判断中,会自动转换为布尔类型,比如:0、''、undefined、null、NaN这五种情况转化为false,其他的所有都会转化为true

  • 第二个,在执行字符串拼接时,会将其他数据类型自动转化为字符串类型。执行字符串拼接时,拼接符号+号两侧应该都是字符串类型,如果是其他类型JavaScript程序,会自动转化为字符串类型,再执行拼接。这里有三种特别的形式:数组、对象、函数,这些在进行拼接转换时,数组会把[]去掉再拼接;对象先变成[ object Object ]再进行拼接;函数会原封不动地进行字符串拼接。

  • 第三个,自动转化数值。情景在执行数学运算时,会触发数据类型的自动转换。Boolean数据类型:true -->1,false -->0;undefined数据类型 -->NaN;null -->0;String数据类型:如果整个字符串是纯数字字符串或符合科学计数法 -->转化为对应的数值,如果字符串内有不符合数字规范的内容 -->转化为NaN;数组,对象,函数:如果是+加号执行的是字符串拼接效果,这些数据类型会按照字符串的原则来转化,如果是其他形式的运算执行结果都是NaN。

  • 第四个:强制转换Boolean。除了0、''、undefined、null、NaN转化为0之外,其余的数据军转换为true。方法:Boolean(),这种方式不会改变原数据的类型。

  • 第五个:其他类型强制转化为字符串类型。方法1,( 变量.toString(进制) ),进制范围为2~36;方法2,String( 变量/数据 ),将变量或数据转换为字符串,原则按照自动转换的方式执行,字符串拼接时会将其他数据类型自动转化为字符串。

  • 第六个:将其他数据类型强制转化为数值类型。方法1,Number( 变量/数值 ),将其他类型强制转化为数值类型,转化原则与自动转化选择相同。方法2,parseInt( 变量/数据 ) 是从数据的左侧起,解析获取整数内容,以获取变量或者数据的整数部分。方法3,parseFloat( 变量/数值 )

变量操作基础中,最重要的是数据的自动转化和强制转化,比如在if判断条件中,它会默认将其自动转化为Boolean类型,当然程序员也可以根据需要,手动的进行数据类型之间的强制转化。在JS原始数据类型中,分为number、string、Boolean、undefined、null和object六大类型,它们之间的传递有些是值之间的传递,有些是地址之间的传递,在操作数据中,一定要注意自己所需要的是什么,不要弄混搅了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值