JS数据类型

JavaScript —— js数据类型

@(javascript)

js数据类型

number 数字类型

常规数字,NaN(not a number)隶属于数字类型,NaN和任何值包括自己都不相等 NaN!=NaN,不能用NaN判定是否为有效数字。

isNaN用于检测一个值是否为非有效数字,如果不是有效数字返回TRUE,是有效数字FALSE。

在使用“isNaN"检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于Number()这个方法,把值转换为数字类型,然后再检测。

把其他类型值转换为数字类型 Number([val])
  • string 把字符串转换为数字,只要字符串包含任意一个非有效数字字符结果都是NaN, 空字符串变为0;

    • console.log(Number('12.5')); 12.5 console.log(Number('12.5X')); NaN console.log(Number('')); 0
  • boolean

    • console.log(Number(true)); 1
      console.log(Number(false)); 0
  • null

    • console.log(Number(null)); 0
  • undefind

    • console.log(Number(undefined)); NaN
  • 引用数据类型转化为数字,是先把他基于toString方法转换为字符串,然后再把字符串转换为数字;

    • {} {XXC} .toString()" [object Object]" NaN
    • [] [12,13] .toString()
parseInt parseFloat([val],[进制]) 把一个值转换为数字,对于字符串,从左到右查找有效数字字符,直到遇到非有效数字字符停止寻找,把找到的有效数字返回 parseInt整数parseFloat小数。

#####“ = =” 进行比较时候,可能出现把其他数据类型值转换为数字。

进行四则运算,要先通过number转换再计算。
string字符串数据类型

所有用“ ” ‘ ’ `(ES6模板字符串,)包起来的都是字符串。
其他数据类型值转换为字符串数据类型的规则

  • toString
    • [val].toString()
      • (null).toString() 转换为字符串的结果就是’null’ toString报错 但是能转换
      • (undefined).toString() 转换为字符串的结果就是’undefind ’ toString报错 但是能转换
      • {}普通对象toString “[object object]’’
      • 其他toString都是引号包裹
    • 字符串拼接
      1. 四则运算法则中除加法之外,其余都是数学计算,加法可能存在字符串拼接,一旦遇到字符串,则不是数学运算,而是字符串拼接。
console.log('10'+10); "1010"
console.log('10px'-10);  NaN
console.log('10'-10);  0

let a =10+ null+true+[]+undefined+‘珠峰’+null+[]+10+false;
‘11undefinf珠峰null10false’

Boolean 布尔值TRUE/FALSE
    > 只有0、NaN、“”、null、undefind、五个值为FALSE,其他为TRUE

其他值转换为Boolean

  1. Boolean([val])
console.log(Boolean(0));false
  1. !或者!!代表boolean !表boolean再反 !!表boolean
console.log(!1);false
console.log(!!1);true
  1. 条件判断 如果条件只是一个值,不是==/===/!=/>=/等这些比较,是要把这个值先转换为布尔值,然后验证真假。
    if(){
    console.log(‘haha’)
    }
    true输出,false不输出
null/undefind

null代表没有,null指意料之中:开始手动设置为null,后期再赋值。(手动设置0,栈内存中有自己的存储空间)
undefind也代表没有,undefind指意料之外(默认机制)。创建一个变量没有赋值。

object -普通对象

{[key]:[value],……} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的(并且属性名不能重复)

对象的属性名只有两种格式:数字或者字符串(等基本类型 null,undefind,true)

如何获取
let person = {
    name:'name',
    age:23,
    height:'185cm',
    weight:'80kg'
};
输出属性名的属性值的两种方式
console.log(person.name);
console.log(person['age']);

如果当前属性名不存在,默认的属性值是undefined
如果属性名是数字,输出只能采用第二种[]的方式

设置属性名属性值

属性名的设置不能重复,如果重复属于修改之前属性名的属性值

person.GF = 'zz';
console.log(person['GF']);       
person.name = 'jj';
console.log(person['name']);5
删除属性名

真删除:把属性清除。假删除是清除属性值

person.weight = null;   假删除
console.log(person);
delete person['name'];  真删除
console.log(person);
object -数组对象

数组对象是特殊的数据类型

  1. 我们在[]中编写的是属性值,它的属性名是默认生成的数字,从0开始逐级递增,而且这个数字代表每项的位置,我们称其为"索引".
  2. 默认一个属性名length,存储数组的长度.
let ary = [12,'haha',true,13];
console.log(ary);
console.log(ary['length']);
console.log(ary.length);

(4) [12, "haha", true, 13]
0: 12
1: "haha"
2: true
3: 13
length: 4
__proto__: Array(0)

第一项索引
console.log(ary[1]);0
第三项索引
console.log(ary[3]);
倒数第一项索引
console.log(ary[ary.length-1]);
数组末尾添加内容

栈内存

浏览器想要执行JS代码

  1. 从电脑内存中分配出一块内存,用来执行代码(栈内存stack)
  2. 分配一个主线程用来自上而下执行JS代码
基本数据类型:按值操作,叫做值类型
引用数据类型:操作的是堆内存的地址,按引用地址操作。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值