数据类型概述 严格检查模式 数据类型转换

数据类型概述

number

js不区分小数和整数

123//整数
123.9//浮点数
1.23e3//科学计数法
-90//负数
NaN//not a number
Infinity//表示无限大

字符串

'abc' "abc"

布尔值

true false

逻辑运算

与&& 或|| 非!

比较运算

=//赋值
==//等于(类型不一样,结果不一样,也会为true)
===//绝对等于(类型一样,结果一样,才会为true),一般都用这个

坚持不要用==比较

注意:

  1. NaN与所有的数值都不相等,包括自己。只能通过一个方法isNaN(NaN)来判断这个数是否是NaN

  2. 注意精度问题:

    console.log((1/3)===(1-2/3))  
    

    返回结果为false。 所以尽量避免使用浮点数进行运算

    可以用绝对值来计算,判断两者相减的值是否小于0.00000001,若是,则就认为是相等
    
console.log(Math.abs(1/3-(1-2/3))<0.00000001)
//返回值为true

null和undefined

null:空

iundefined:未定义

数组

var arr=[1,3,4,'hello',null,true];
//数组中可以写不同类型的内容,因为var不区分类型
//但一般都使用这个


//也可以new一个对象去定义数组
new Array(1,3,4,'hello',null,true);


/*打印时用浏览器控制台,console.log(arr[i])
  i表示数组下标,与java一样,下标从0开始
  数组下标越界会打印出undefined
*/

对象

对象是用大括号,数组用中括号

var person={
	name:"vvv",
	age:3,
	tags:[1,3,5,7]
}
//每个属性值之间需要用,隔开,最后一个就不需要了

怎么打印?

在网页控制台上输person.name 就会出现定义的值

类似的,也可以输person.age person.tags[i]

注意

以上代码有的写的太过随意,因为js是弱语言,代码不会很严谨,但随意的代码会造成很多不便和问题,不利于开发者以及使用者,为此引出了严格检查模式如下

严格检查模式

在js代码前加上'use strict';即可,必须写在第一行

引入:局部变量一般建议使用let定义

数据类型转换

强制类型转换

类型转换主要指将其他数据类型转换为String Number Boolean

  1. 转换为String

方法一:调用被转换数据类型的toString()方法

var a=123;
a.toString();
console.log(typeof a);//number
console.log(a);//123
console.log(typeof a.toString());//string

不会改变原变量的类型,会将转换的结果返回

方法二:调用String()函数

var a=123;
a=String(a);
console.log(typeof a);//String
console.log(a);//123

注:null和undefined没有toString()方法,要用方法二,调用String()函数。会将null直接转为"null"

  1. 转换为Number

方法一:使用Number()函数

  • 字符串-->数字

​ 纯数字的字符串,直接转换为数字

​ 字符串中有非数字内容,转换为NaN

​ 是一个空串或都是空格,转换为0

- 布尔-->数字

​ true 转为1

​ false 转为0

- null-->数字      0
  • undefined-->数字 NaN

方法二:专门用来处理字符串

​ parseInt() 把一个字符串转换为整数(将字符串中的有效整数取出来,转换为number)

var a="50.3px";
a=parseInt(a);
console.log(typeof a);//number
console.log(a);//50

​ parseFloat() 把一个字符串转换为浮点数(将字符串中的有效浮点数取出来,转换为number)

var a="50.3px";
a=parseFloat(a);
console.log(typeof a);//number
console.log(a);//50.3

:若对非String类型做方法二处理,会先将其转换为String类型,再处理

  1. 转为Boolean

使用Boolean函数

- 数字-->布尔

​ 除了0和NaN,其余都是true

  • 字符串-->布尔

​ 除了空串,其余都是true

  • null和undefined都是false
  • 对象也会转换为true
posted @ 2021-11-19 22:15  valder-  阅读(34)  评论(0)    收藏  举报