js笔记2019.8.7

本文详细介绍了JavaScript中的数据类型,包括原始类型和引用类型,特别讨论了typeof操作符的用法,undefined与null的区别,Boolean和Number类型的特性和转换方法,以及parseInt和parseFloat函数的使用。还提到了typeof操作符的优先级高于乘除运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.数据类型:
1.原始类型:数字,字符串,布尔,null,undefined;存储于栈内存空间
2.引用类型:数组(数组中的元素可以是任意数据类型),函数,对象…存储于堆内存空间

二.typeof
1.typeof 操作原始类型的结果可能是number/string/boolean/undefined/object/function;
var a = 100;console.log(typeof a);结果是number;
var st = "100";console.log(typeof st);结果是string;
var un;console.log(typeof un);结果是undefined;
特殊:var nu = null;console.log(typeof nu);结果是object;
2.typeof 操作引用类型,结果要么是object要么是function;
var arr = [1,2,3]; console.log(typeof arr);结果是object;
var obj = {}; console.log(typeof obj);结果是object;
var fun= function(){}; console.log(typeof fun);结果是function;
3.typeof 操作结果的类型一定是字符串类型string;
var a = 100;console.log(typeof typeof a);结果是string;

三.undefined 和 null区别
1.概念:null是空值,undefined代表没有值;
2.出现情况:给变量赋值null时,结果为null;变量没有赋值时,结果就是undefined;当函数没有return返回值时,调用函数的表达式就是undefined;
3.特点:typeof操作时 null结果为object; undefined结果为undefined;
4.一起出现的情况:undefined 和null相等判断时结果为true,全等判断结果为false;

四.Boolean类型
1.各种数据及其转换规则表
五.Number类型
1.包含整数/小数,支持8进制/16进制和科学计数

console.log( 0x1a ); //26
console.log( 0100 ); //64
console.log(3e4); //300000

.
2.number会出现小数精度问题
console.log(0.1+0.2); //0.3000000000004
3.解决小数精度问题
(1)将小数转换成整数做运算;
console.log((0.1*10+0.2*10)/10); //0.3
(2)将小数保留固定的小数位;

//toFixed(n);保留n位小数
console.log((0.1+0.2).toFixed(2));//0.30

(3)只保留整数

//1. Math.floor()向下取整
console.log(Math.floor(0.1+0.2));//0
console.log(Math.floor(1.1+0.2));//1

//2. Math.ceil()向上取整
console.log(Math.ceil(0.1+0.2));//1

//3. Math.round()四舍五入
console.log(Math.round(0.1+0.2));//0
console.log(Math.round(0.4+0.2));//1

4.(1)Number()函数转换

console.log(Number(false)); //true--1   false--0
console.log(Number(null)); //0
console.log(Number(NaN)); //NaN
console.log(Number(undefined)); //NaN

(2)字符串转换成数字,字符串里只能出现数字;

console.log(Number("12.54124")); //12.54124
console.log(Number("12.5a24")); //NaN

(3)引用类型转换成数字时,优先调用valueOf(),再调用toString()将其转换成字符串形式

var arr = [10];
console.log(Number(arr)); //10

//优先调用valueOf()
console.log(arr.valueOf()); //[10]

//再调用toString()将其转换成字符串形式"10"
console.log(arr.toString());  //10

//最后Number(arr)将其转换成数字10
var arr = [10,20];
console.log(Number(arr)); //NaN
console.log(arr.valueOf()); //[10,20]
//再调用toString()将其转换成字符串
console.log(arr.toString());  //10,20

(4)字符串在转化成数字时前后空客可以忽略,不能忽略中间空格;

console.log(Number("   10  2   "));  //NaN

(5)Infinity(无穷大)和 isFinite(是否有限大)

	console.log( Number.MAX_VALUE*100 ); //Infinity
	console.log( 100/0 );//Infinity
	console.log( Infinity );//无穷大
	console.log( isFinite(Infinity) );  //isFinite 是否有限大;  结果为false
	console.log(0/0); //NaN
	
	console.log(typeof 1/0); // NaN
	// typeof优先级高于乘除,所以先进行typeof 1操作,结果为number,然后number/0结果为NaN;

	面试题:
	console.log(  typeof typeof 5/0); //NaN	 
	console.log(  typeof(7/0)  ); //number
	console.log(  typeof(typeof 9/0)  ); //number
	console.log(  typeof typeof(typeof 4/0)); //string
	console.log( isNaN(NaN) ); //true

5.NaN与isNaN
(1)NaN与任何值都不相等,包括自己也不相等;

console.log(NaN==NaN); //false

(2)NaN参与的任何运算都是NaN

console.log(NaN/100); //NaN
console.log("number"/100); //NaN

(3)isNaN() 数值检测,用于判断是否不是一个数字;
任何一个不能被转换为数值的值都会导致这个函数返回true;

console.log(isNaN("safsf")); //true
console.log(isNaN("")); //false
//先进行隐式判断Number("")结果为0,再进行isNaN("");所以最后结果为false;
var arr = [];
console.log(isNaN(arr)); //false

6.(1)parseInt:从前到后取数字,直到遇到非数字字符则停止读取;

console.log(parseInt("12.41")); //12
console.log(parseInt(null)); //Nan
console.log(parseInt("")); //Nan

parseInt()支持传递两个参数,支持2/8/16/10进制,第二个参数不传或为假值时,默认按10进制处理

console.log(  parseInt("070")  );//70
console.log(  parseInt("070",16)  );//112
console.log(  parseInt("070",0)  );//70

(2) parseFloat():从前到后取符合小数数字的字符,只支持十进制和科学计数法;

console.log(parseFloat("10.5621")); //10.5621
console.log(parseFloat("10.5ab21")); //10.5

六. typeof优先级高于乘除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值