美文网首页
JS 里的数据类型

JS 里的数据类型

作者: 加油吧_ | 来源:发表于2018-05-12 16:30 被阅读5次

1. 七种数据类型

  • number 数值 :整数和小数
  • string字符串 : 文本
  • boolean布尔值 :true false
  • undefined :未定义或不存在
  • null :空值
  • object对象 : 值的集合
  • symbol
    前五种是基本类型
    对象包括: object 、 array数组 、function函数

2. typeof 运算符 typeof 可以用来检查一个没有声明的变量,而不报错。

数值 : number
字符串 :string
布尔值 :boolean
函数 :function
undefined :undefined
null : object

3.null 和 undefined

区别:null是一个空值 转为数值时为0
undefined 是一个表示 “此处未定义” 的原始值,转为数值时为 NaN
在 if 语句中两个都是 false
相等运算符(==)甚至直接报告两者相等

用法和含义

调用函数时,某个参数未设置任何值,传入null,表示参数为空

undefined 未定义

  • 变量声明,但未赋值
  • 调用函数时,应该提供的参数没有提供,该参数等于undefined.
  • 对象没有赋值的属性
  • 函数没有返回值,默认返回undefined

4. 布尔值 true false

  • 两元运算符 &&(and) //(or)
  • 前置逻辑运算符 ! (not)
  • 相等运算符 === == !== !=
  • 比较运算符 > < >= <=
    一般用于程序流程的控制

空数组([])和空对象({})对应的布尔值,都是true

五个falsy值 其他都为true

undefined null 0 NaN ' '(空字符串) false

5. Number

所有数字都是以64喂浮点数储存

数值精度

第一位 : 符号位 0 正 1 负
第2到12位: 指数部分
第13到64位:小数部分 (有效数字)

数值范围:21024~2-1023

a> 2^1024 正向溢出 返回Infinity
a< 2^-1075 负向溢出 返回0

数值的表示法

科学计数 :
123e3 //123000 123e-3 //0.123
自动转为 小数点后的0 多余5
(0.0000003 //3e-7)
小数点前的数字多余21位

数值的进制

2 8 10 16 进制
十进制 : 没有前导 0的数字
八进制: 0o 或0O的数值 或有前导0 只用到0-7的数值 0o377 // 255
十六进制 : 0x或0X的数值 0xff //255
二进制: 有前缀0b 或0B的数值 0b11 // 3

特殊字符 0

正零 和 负零

+ 0 === -0 //true
唯一区别: 坐分母时返回值不一样
1/+0 // +Infinity 1/-0 //-Infinity 无穷

NaN

表示 非数字 数据类型是Number
0/0 // NaN
运算规则

  • NaN不等于任何值,包括自身
  • NaN 布尔运算是false
  • NaN与任何值运算都是 NaN
  • 数组的indexof方法内部使用的是严格相等运算符,该方法对NaN不成立

6. Boolean 字符串

概述:就是多个或单个拍在一起的字符放在单引号或双引号中。

  • 单引号中使用多引号 双引号中使用单引号
    " ' ' " ' " " '
  • 字符串默认写在一行,分成多行会报错
  • 多行字符串写法
var long ='long'
   + 'long'
   + 'string';
var long = 'long\
long\
string`;

转义符

\0 :null(\u0000) \b :后退键(\u0008)
\f :换页符(\u000C) \n :换行符(\u000A)
\r :回车键(\u000D) \t :制表符(\u0009)
\ v :垂直制表符(\u000B) \ ' :单引号(\u0027)
\ " :双引号(\u0022) \ \ :反斜杠(\u005C)

length 属性

返回字符串的长度,属性无法改变

Base 64 转码

btoa() : 任意值转为 Base64 编码
atob(): Base64编码转为原来的值

7. 对象 Object

概述 ; 对象就是一组 "键值对" 的集合,无序的复合数据类型

对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用。

  • 键名是数值,自动转为字符串
  • 键名不符合标识符的条件,也不是数字,必须加引号。
  • 键名 都是 属性,键值可以是任何数据类型

对象的引用

如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量。

如果取消某一个变量对于原对象的引用,不会影响到另一个变量

var o1 = {};
var o2 = o1;
o1 = 1;
o2   // {}

表达式还是语句

  • 行首是大括号,一律解释为代码块。
  • 如果解释为表达式,在大括号外加上圆括号。
eval('{foo: 123}') // 123
eval('({foo: 123})') // {foo: 123}

如果没有圆括号,eval将其理解为一个代码块;加上圆括号以后,就理解成一个对象。

属性的操作

一种是使用点运算符,还有一种是使用方括号运算符

var obj = {
  p: 'Hello World'
};
obj.p // "Hello World"
obj['p'] // "Hello World"
  • 如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
  • 数字键可以不加引号,因为会自动转成字符串
  • 数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符

属性的赋值

点运算符,还有一种是使用方括号运算符

var obj = {};
obj.foo = 'Hello';
obj['bar'] = 'World';

Object.keys 查看所有属性

delete 命令 delete obj.width

delete命令用于删除对象的属性,删除成功后返回true

  • 删除一个不存在的属性,delete不报错,而且返回true
  • 只有一种情况delete命令会返回false,那就是该属性存在,且不得删除
  • delete命令只能删除对象本身的属性,无法删除继承的属性
    delete返回true,该属性依然可能读取到值 >>(继承的属性)

in 运算符

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。
它不能识别哪些属性是对象自身的,哪些属性是继承的。

var obj = { p: 1 };
'p' in obj // true
'toString' in obj  // true

for…in 循环

for...in循环用来遍历一个对象的全部属性。

它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。

with 语句 不推荐使用

with语句的格式如下:
with (对象) {
语句;
}

var obj = {
  p1: 1,
  p2: 2,
};
with (obj) {
  p1 = 4;
  p2 = 5;
}
// 等同于
obj.p1 = 4;
obj.p2 = 5;

如果with区块内部有变量的赋值操作,必须是当前对象已经存在的属性,否则会创造一个当前作用域的全局变量。

相关文章

  • JS 里的数据类型

    JS 里的数据类型 JS中有七种数据类型,分别是:number,string,boolean,undefined,...

  • JS 里的数据类型转换

    JS 里的数据类型转换 Js中的数据类型一共有7种,即number,string,boolean,underfin...

  • 《JS里的数据类型》

    JS里的数据类型分为 原始数据类型(primitive type) 和 合成数据类型(complex type)...

  • JavaScript数据类型

    JS 里的数据类型 七种数据类型 Number,String,Boolean,Null,Undefined,Sym...

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • JS里的数据类型转换

    上一篇文章(JS里的数据类型)介绍了js中的数据类型。这篇主要介绍数据类型转换。 一、任意类型转字符串 转换成st...

  • JS 里的数据类型转换

    前言:上一篇博客讲到JS里的数据类型,相信大家已经了解到7种数据类型,那么这章将详细深入了解JS的不同数据类型之间...

  • JS里的数据类型转换及小技巧

    前言:之前的博客JS里的数据类型介绍了JS中的各种数据类型,那么可不可以把其他的数据类型转换成特定的一种数据类型呢...

  • JS 里的数据类型

    JS里的数据类型包含七种数据类型:number string boolean symbol undefined n...

  • JS 里的数据类型

    JS 里的数据类型 JavaScript 的数据类型,有7种。 1,数值(number)2,字符串(string)...

网友评论

      本文标题:JS 里的数据类型

      本文链接:https://www.haomeiwen.com/subject/tnvgrftx.html