JS基本概念--数据类型

1.ECMAScript有六种数据类型:

五种简单数据类型:Numeber,String,Boolean,Null,Undefined

一种复杂数据类型:Object

2.typeof 操作符可以返回六种类型:

'number','string','boolean','undefined','object','function'

'undefined':该值未定义

'string':该值是字符串

'boolean':该值是布尔值

'undefined':该值未定义

'object':该值是对象或者null

'function':该值是函数

————————————————————————————————————————————————————————

NaN知识点

NaN:用于表示一个本来要返回数值的操作数未返回数值的情况。(没有返回数值所以返回了NaN)

NaN有两个特点。

①任何涉及 NaN 的操作(例如 NaN /10)都会返回 NaN

②NaN 与任何值都不相等,包括 NaN 本身。

另外 0除以 0 才会返回 NaN,正数除以 0 返回 Infinity,负数除以 0返回-Infinity。

 isNaN() 函数:任何不能被转换为数值的值都会导致这个函数返回 true

alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)

————————————————————————————————————————————————————————

3.js的强制类型转换(Number、parseInt、parseFloat、String、Boolean)

Number():      var num2 = Number(""); // 0

parseInt():      var num4 = parseInt(22.5); // 22

parseFloat():  var num3 = parseFloat("22.5"); //22.5

String():          alert(String(10)); // "10"

Boolean() :     let mes = Boolean('hello')  // true

————————————————————————————————————————————————————————

Number类型知识点

首先回顾一下二进制,八进制,十进制,十六进制

二进制:是指用0和1两个数码来表示的数。基数是2。eg.1001001。

八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字。前缀为0,是无符号数(无正负)。

十进制:日常生活中用的最多。采用0—9十个数字。

十六进制:由0—9,A—F(代表10—15)组成,前缀为0X或0x。

在js里面

十进制:     var intNum = 55。// 整数

八进制:第一位必须是0,如果字面值中的数值超出了范围,忽略前导0,后面数值当做十进制解析。

var octalNum1 = 070; // 八进制的 56
var octalNum2 = 079; // 无效的八进制数值——解析为 79

十六进制:前两位必须是 0x。var hexNum1 = 0xA; // 十六进制的 10

1) 浮点数值

注意以下几种特殊情况

var floatNum3 = .1; // 有效,但不推荐

var floatNum3 = .1; // 有效,但不推荐

var floatNum2 = 10.0; // 整数——解析为 10

var floatNum = 3.125e7; // 等于 31250000  即3.125 X 10^7

var floatNum = 3e-7; // 等于 0.0000003 即3 X 10^-7

注意一个特殊情况

浮点数值的最高精度是 17 位小数,例如,0.1 加 0.2的结果不是 0.3,而是 0.30000000000000004。

2) 数值范围

Infinity (正无穷),-Infinity (负无穷)

使用 isFinite() 函数。这个函数在参数位于最小与最大数值之间时会返回 true。

var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result)); //false

3) NaN(见上面)

4) 数值转换

把非数值转换为数值: Number() (用于任何数据类型)、 parseInt() 和 parseFloat() (用于把字符串转换成数值

Number() 规则:(只说典型的情况)

 如果是 null 值,返回 0。
 如果是 undefined ,返回 NaN 。
 如果是字符串,遵循下列规则:

     -八进制忽略0当十进制看,如“011”变成11

     -十六进制则转成十进制整数值

     -空字符串当成0

 如果是对象,则调用对象的 valueOf() 方法,然后依照前面的规则转换返回的值。如果转换的结果是 NaN ,则调用对象的 toString() 方法,然后再次依照前面的规则转换返回的字符串值。

parseInt() 规则:(处理字符串成整数)

忽略前导0,且会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号, parseInt()就会返回 NaN ,直到解析完所有后续字符或者遇到了一个非数字字符就会结束。

用 parseInt() 转换空字符串会返回 NaN ( Number() 对空字符返回 0)

var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 70(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)

避免错误解析,需要明确指定基数    var num3 = parseInt("10", 10); //10 (按十进制解析)

parseFloat() 规则:(处理字符串成浮点数)

与parseInt类似,但是,字符串中的第一个小数点是有效的,第二个小数点无效。

忽略前导0,只解析十进制。十六进制会被转换成0,没第二个参数的写法。如可解析为整数则返回整数。

var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000

————————————————————————————————————————————————————————

4.JS隐式类型转换(+、–、==、!)

在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加。之所以不同的数据类型之间可以做运算,是因为 JavaScript 引擎在运算之前会悄悄的把他们进行了隐式类型转换。

5.null 和 undefined 的区别?

undefined:

①使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined。     var message;//undefined

②对未初始化和未声明的变量执行 typeof 操作符都返回了 undefined 值。

var message; // 这个变量声明之后默认取得了 undefined 值
// 下面这个变量并没有声明
// var age
alert(typeof message); // "undefined"
alert(typeof age); // "undefined"

③转为数字是NaN

此外:

  1. 变量被声明了,但没有赋值时,就等于undefined。
  2. 对象没有赋值的属性,该属性的值为undefined。
  3. 函数没有返回值时,默认返回undefined

null:

①表示一个空指针对象。 let car = null; alert(typeof car); //"object"

②如果变量用于保存对象,则应初始化为null。

if(car != null){

//对car对象执行某些操作

}

③ undefined 值是派生自 null 值的    alert(null == undefined); //true    alert(null === undefined); //false

④转为数字是0

6.BOM 对象有哪些,列举 window 对象?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值