代码编织梦想

数据类型

数据类型就是字面量的类型

在JS中有六种数据类型:

String 字符串

Number 数值

Boolean 布尔值

Null 空值

Undefined 未定义

Object 对象

Symbol 唯一

其中String,Number,Boolean,Null,Undefined,为基本数据类型,Object为引用数据类型。

1.String字符串

在JS中使用字符串需要使用引号引起来

JS同时支持双引号和单引号

双引号和单引号自己不能嵌套自己,但是双引号和单引号可以互相嵌套

var str = 'hello'
console.log(str);

在字符串中可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义

str = '我说:\'hello\'';
/*我说'hello'*/

\n 换行 \t 制表符

2.Number数字类型

在JS中所有数值都是Number类型,包括整数和浮点数

var a = 123;
var b = 456.123
console.log(a,b)

JS中数字的最大/小值,当使用的数字超过了Number表示的数字超过了最大值,则会返回一个Infinity(正无穷大)

console.log(Number.MAX_VALUE)
/*1.7976931348623157e+308*/
console.log(Number.MIN_VALUE)/*最小的正值*/
/*5e-324*/
console.log(Number.MAX_VALUE*Number.MAX_VALUE)
/*Infinity*/

非数字运算,会返回一个特殊数字NaN,表示Not A Number

var a = abc*efd
console.log(a)
/*NaN*/

使用typeof检查NaN,Infinity的值,会返回number

var a = NaN
var b = Infinity
console.log(typeof a,typeof b)
/*number number*/

如果使用JS进行浮点数运算,可能得到一个不精确的结果

不可以使用JS进行精确度很高的运算

3.Boolean布尔值

布尔值只有两个(true/false),主要用作逻辑判断

4.Null/Undefined

null专门用来表示为空的对象

使用typeof检查null时,会返回object;

当声明一个变量却不给其赋值时,其值就会等于undefined

使用typeof检查undefined时,返回undefined

5.对象Object(引用)

对象是一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性。如果我们使用基本数据类型的数据,我们所创建的变量都是独立的,不能成为一个整体,要想数据之间建立联系就要使用到对象。

Array

一种特别的对象,有数值下标

Function

一种特别的对象,内部是可执行的代码

对象的分类

1.内建对象

由ES标准中定义的对象,在任何的ES的实现中都可以使用

eg:Math,String,Function

2.宿主对象

由JS的运行环境提供的对象,主要是浏览器提供的,如BOM,DOM

3.自定义对象

由开发人员自己创建的对象

自定义对象的创建

1.创建对象

使用new关键字,通过构造函数constructor,构造函数是专门用来创建对象的,使用typeof检查对象时,会返回object

var obj = new Object();

2.对象操作

在对象中保存的值称之为属性

对象.属性 = 属性值

obj.name = '亚索'

查询对象属性 对象.属性

console.log(obj.name)

修改对象属性 对象.属性=新值

obj.name = 'tom'

删除对象属性 delete 对象.属性

delete obj.name

数据类型判断

1.数据类型判断方法

1.typeof

用来检查一个变量的类型

返回数据类型的字符串表达

可以判断undefined,数字类型,布尔类型,字符串,不能判断obj和null,也不能判断array与object

null作为一个基本数据类型为什么会被typeof运算符识别为object类型呢? 这是因为javascript中不同对象在底层都表示为二进制,而javascript 中会把二进制前三位都为0的判断为object类型,而null的二进制表示全都是0,自然前三位也是0,所以执行typeof时会返回object

console.log(typeof a)

2.instanceof

判断对象的具体类型,返回一个布尔值

var a = b1 insanceof Object

3.===

可以判断undefined,null,其他都不能判断

因为undefined和null都只有一个值

2.强制数据类型转换

将其它数据类型转化为Number,String,Boolean

1.强制装换为String

方法一

调用其他数据类型的toString()方法

该方法不会改变原变量,他会将转换的结果返回

null与undefined没有toString方法,调用会报错

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

方法二

调用String()函数,并将要转换的变量作为参数传回函数

该方法不会改变原变量,他会将转换的结果返回

此方法可以转换null和undefined

var a = null;
var b = undefined;
a = String(a);
b = String(b);
console.log(a);
console.log(b);
/*
string
string
*/
​

2.强制转换为Number类型

方法一

使用Number()函数

使用方法同String()函数

ps:使用Number转换时,转换项中如果为纯数字,则转换为数字,如果有任何非数字项,则转换为NaN,转换空串或者都为空格的串,则转换为0,布尔类型进行转换时,false为0,true为1,null转换为0,undefined为NaN

var a = "123"
var b = 'abc'
var c = ''
var d = false
a = Number(a);
b = Number(b);
c = Number(c);
c = Number(d);
console.log(typeof a);
console.log(a)
console.log(typeof b);
console.log(b)
console.log(typeof c);
console.log(c)
console.log(typeof d);
console.log(d)
/*
number
123
number
NaN
number
0
number
0
*/

方法二

调用parseInt()函数

parseInt可以将字符串中有效的整数取出来,然后转换为Number(只转换到第一个非数字之前)

parseFloat()同上,不过可以取小数

var a = '123x456'
var b = '123.456'
a = parseInt(a);
/*b = parseInt(b)
123
*/
b = parseFloat(b);
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
/*
number
123
number
123.456
*/

3.强制转换为Boolean类型

使用Boolean()函数

1.数字——>Boolean

除了0和NaN,其余都为true

2.字符串——>Boolean

除了空串,其余都为true

3.null/undefined

null/undefined转换为false

4.对象转换也为true

数据类型的几个问题

1.undefined和null的区别

undefined代表定义但是未赋值

null定义了并赋值了,只是值为null

2.什么时候给变量赋值为null?

初始值设为null,表示将要赋值为对象

最后将变量设为null是为了释放内存,让变量的指向变为垃圾对象(被垃圾回收器回收)

3.严格区别变量类型与数据类型?

数据类型:基本类型与对象类型

变量类型(变量内存值得类型):

基本类型:保存的就是基本类型的数据

引用类型:保存的是地址值

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Crowfliesbyplane/article/details/126983321

js数据类型 以及 数据类型的转换_halo1416的博客-爱代码爱编程

ECMAScript中将数据类型分为三类:基本数据类型,特殊数据类型和复合(引用)数据类型 一、基本数据类型 String:字符串数据类型,放在单引号或者双引号中 Number:数字类型,包括int和float两种 Boolean: 布尔类型,只有true和false两种值 二、特殊数据类型 undefined:变量声明后但未赋值,其值便为un

数据类型及强制转换-爱代码爱编程

字面量和变量 字面量: 都是一些不可改变的值 如 1 2 3 字面量都是可以直接使用,但是我们一般不会直接使用字面量 变量 变量可以用来保存字面量,而且变量的值是可以任意改变的变量更加方便我们使用,所以在开发中

javascript强制数据类型转换-爱代码爱编程

主要只将其他的数据类型转化为String Number Boolean 转化为String 1.调用被转化类型的toString()方法(但是Null和Undefined没有toString方法) var a = 123; a = a.toString(); console.log(a);

js数据类型转换(一、各种数据类型转换为数值型)-爱代码爱编程

字符型转换为数值型 NaN的意思是非数值,它的数据类型是数值类型。 var a = "a"; //字符串只要含有非数字就会转换为NaN,否则转换为数值 var a="101001"; var a="4.15a"; a = Number(a); //强制转换 a = parseIn

python如何强制转换数据类型_Python如何实现强制数据类型转换-爱代码爱编程

Python如何实现强制数据类型转换 这篇文章主要介绍了Python如何实现强制数据类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 常用转换函数 函数 作用 int(x) 将x转换成整数类型 float(x) 将 x 转换成浮点数类型 complex(real, [,imag]) 创建一个复数 s

java强制转换数据类型_JAVA数据类型强制转换出错,是什么原因?-爱代码爱编程

首先,梳理一一下类型系统的基础概念:问:什么是强 / 弱类型语言?: 答:强 / 弱类型语言的区分,关键在于变量是否**(倾向于)**类型兼容。例如,Java 是强类型语言,变量有固定的类型,以下代码在 Java 中是非法的: public class MyRunnable { public abstract void run(); } //

js 判断数据类型(基本数据类型、引用数据类型)and 强制转换数据类型-爱代码爱编程

 判断数据类型(基本数据类型、引用数据类型): const type = (target) => { const template = { "[object Array]" : "array", "[object Object]" : "object", "[object Number]" : "nu

7. js中的八种数据类型、强制转换、如何判断js数据类型-爱代码爱编程

目录 一、JS的数据类型有8种 1. Number 2. String 3. Boolean 4. Object 5. null 6. undefined 7. Symbol 8. bigInt  二、强制类型转换 1. 其它类型转换为String 2. 其它类型转换为Number 3. 其它类型转换为Boolean:Bool

JS中的数据强制类型转换-爱代码爱编程

1.含义 强制类型转换指的是将一个数据类型强制转换为其他的数据类型 类型转换主要指,将其他的数据类型,转换为 String Number Boolean即字符串,数值和布尔值 2.将其他的数据类型转换为Sting 1.方式一:         - 调用被转换数据类型的toString()方法         - 该方法不会影响到原变量,它会将转换

js数据类型分类及区别(完整)、判断数据类型、强制类型转换-爱代码爱编程

1、数据类型分类 基本数据类型:Number、String、Boolean、Null、Undefined、Symbol、BigInt 引用数据类型(对象): Math、Function、Object、Array、BOM、DOM、RegExp、Date 2、基本数据类型和引用数据类型区别 (1)基本数据类型的值直接在栈内存中存储,值

js字符串和数据类型的相互转换_会做梦的辣条鱼的博客-爱代码爱编程

一,js类型转换: 隐式类型转换(自动转换) 显式类型转换(手动强制转换) 字符串转换为数字 Number() parseInt() parseFloat() 1.Number 拼接符区分对待:(字符)与(数字) let changeNum="960.32548" changeNum+100 //数字加法 Number(change