JavaScript——数据类型

本文所讲:JS中变量的数据类型及详解、三种数据类型的prototype属性、创建数组、undefined与null和NaN的区别!

JS中的变量数据类型

JS 中变量都有哪几种基本数据类型

ES6【ECMAScript6】(欧洲计算机脚本规范) 之前:JS的变量数据类型总共有6种,分为原始数据类型和引用数据类型

原始数据类型:String、Number、Undefined、Boolean、Null
引用数据类型:object以及其子类【类】

ES6【ECMAScript6】(欧洲计算机脚本规范) 之后:在之前的6中数据类型基础上加上了 Symbol

JS 中 typeof 方法的功能以及其语法

功能:在程序运行过程中动判断变量的数据类型
语法:typeof 变量名

结果:typeof 方法的返回值【结果】有六种,结果都是小写的字符串!!!

     6种结果分别为:“string”、“number”、“boolean”、“undefined”、“function”、“object”

注意:

1:数据类型为 Null 的变量,利用 typeof 方法获得的结果为 “object”,这也是 JS 历史遗留的BUG吧

2:在 JS 中判断两个变量是否相等用的是 “==”

3:利用 typeof 检测函数数据类型时,typeof 后面的函数不能加括号

image-20211007104859859

Undefined数据类型

变量数据类型:Undefined
Undefined变量数据值:undefined 【一定要是小写】

须知:在 JS 中如果声明了一个变量却没有赋值,那么系统默认给这个变量赋值为 undefined,当然我们也可以手动给一个变量赋值为 undefined

image-20211007104920789

Number数据类型

JS 中变量的 Number 数据类型

变量数据类型:Number
Number变量数据值:正数、负数、小数、零、整数……NaN【不是一个数字】、Infintiy【无穷大】

NaN解答:当运算结果本应该是一个数字的时候,最后算完却不是一个数字,例如 10 / “啦啦啦”的结果就是 NaN【有除号结果本应该是一个数字】

Infintiy解答:除法运算时,除数为0结果就是 Infinity

注意:

1:Number数据类型的变量值不一定只是数字,例如 NaN、Infinity

2:+符号有两个功能,一个功能是做字符串的拼接,第二个功能是做加法运算符,当+符号两边变量有一个为字符串的时候,那么+充当字符串的拼接,而不是加法的运算,这点非常重要!

image-20211007105002072

JS 内置的 isNaN()、parseInt()、parseFloat()、Math.ceil()方法的功能

isNaN(变量值或者变量名)函数功能:判断变量是否为一个数字,不是数字返回结果为 ture,是数字返回 false
ps:isNaN就是 is Not a Number 翻译为中文就是,不是一个数字

image-20211007105028397

parseInt(字符串或者数字类型变量)函数功能:如果变量是一个字符串,首先将字符串转为数字,并且取这个数字的整数部分,不是字符串就直接取整

parseFloat(字符串或者数字类型变量)函数功能:自动将字符串转为一个数字

Math.ceil(字符串或者数字类型变量)函数功能:如果变量是一个字符串,首先将字符串转为数字,并且在数字基础上向上取整,不是字符串就直接向上取整
ps:2.1向上取整为3,2.99向上取整也为3

image-20211007105037898

Boolean数据类型

JS 中变量的 Boolean 数据类型

变量数据类型:Boolean
Boolean数据类型值:true和false 【Boolean数据类型只有这两个值】

注意:Boolean变量数据类型只有两个值,true和false

image-20211007105122818

JS 中 Boolean()函数的应用场景

应用场景:分支语句和循环语句后面括号里的数据必须是Boolean数据类型,也就只能是 true 和 false 两个值,如果后面括号里面的数据不是 Boolean

数据类型,那么分支语句和循环语句会自动调用 Boolean()函数,将非Boolean的数据转为Boolean数据类型

语法:Boolean(变量或者数据)

转换结果:

Boolean(1):true

Boolean(0):false

Boolean(“ ”):false

Boolean(“啦啦啦”):true

Boolean(undefined):false

Boolean(NaN):false

Boolean(null):false

Boolean(Infinity):true

口诀:有就是true,没有就是false

image-20211007105139789

String数据类型

JS 中的 String 变量数据类型

变量数据类型:String
String变量数据值:“数据” ‘数据’

创建字符串对象的两种方式:

1:var str1=”啦啦啦“ 【这种的字符串数据类型称为小String,用typeof 测该变量数据类型为 string】

2:var str2 = new String(“啦啦啦”) 【这种的字符串数据类型称为大String,用typeof 测该变量数据类型为 object】

注意:

1:利用第二种方式创建字符串,其中 String()是 JS 的内置类,它的父类是 Object(),因此它创建的字符串称为大String,用typeof 测该变量数据类型为 object

2:不管是哪种方式创建的字符串对象【大String和小String】他们的方法和属性都是共用的

image-20211007105213597

JS 中 String 数据类型常用的属性和方法

常用属性:字符串.length 【获取字符串的长度】

常用方法:

总字符串.indexOf(指定字符串):获取指定字符串在总字符串内第一次出现的下标索引,没有出现过返回 -1 ,出现了则返回下标

总字符串.lastIndexOf(指定字符串):获取指定字符串在总字符串内最后一次出现的下标索引,没有出现过返回 -1 ,出现了则返回下标

字符串.replace(待替换字符串,替换字符串):将字符串内的指定字符进行替换,如果待替换的字符有多个只替换第一个,全部替换需要正则

字符串.substr(startIndex,length):根据字符串开始位置的下标索引和截取长度,截取字符串

字符串.substring(startIndex,endIndex):根据字符串开始位置的下表索引和结束位置的下标索引截取字符串,ps:截取的字符串不包括结束索引

字符串.toLowerCase():将字符串全部转为小写

字符串.toUpperCase():将字符串全部转为大写

字符串.split(字符):根据括号内的字符将字符串进行分割,分割为多个字符串存放到Object对象内

注意:substr和substring两个方法的区别是面试问题

image-20211007105240305

JS 中的三目运算符格式

格式:条件 ? 条件成立执行的语句 : 条件不成立执行的语句

image-20211007105248244

Object数据类型

JS 中 Object 数据类型的一些知识

概念:Object是所有自定义类的父类【超类】,也就是所有自定义的类都会默认继承 Object 类的所有属性和方法,自定义的类可以重写Object类的属性和方法,也就是说自己定义的类里面可以使用 Object类里面的所有属性和方法,和python一样

Object 类的属性:

prototype【就学这个】:作用是动态的给类扩展属性和方法
constructor:……..

Object 类的方法【知道就行】:

toString():…….
valueOf():…….
toLocaleString():……

JS 中怎么定义类和创建类对象

定义类的方式:

第一种方式:function 类名(形参){ }

第二种方式:类名 = function(形参){ }

注意:对,你没有看错,定义类的方法和定义函数的两种方法一样!!!就是这么六批!!!就是说构造函数和创建类是放在一起完成的

创建【实例化】类对象的方法:var 类对象 = new 已经定义的类名(实参) 【可以看做先调用这个函数,在实例化对象,就可以解释下面的注意了】

注意:在利用定义好的类创建对象时,会自动执行类里面的代码!

image-20211007105324485

JS 中如何为定义的类添加属性以及访问类实例化对象的属性两种方法

为类添加自身属性语法:this.类的属性名 = 类的属性值 【this代表当前类,类似于 python 的 self】

访问类属性的两种方法:

1:类的属性值 = 实例化对象.类的属性名
2:类的属性值 = 实例化对象[“类的属性名”]

image-20211007105347243

JS 中如何为定义的类添加函数以及如何调用类实例化对象的方法

为类添加自身函数:this.函数名 = funtion(){ }

调用类实例化对象自身的函数:实例化对象.函数名

image-20211007105416429

JS三种数据类型的prototype属性

JS 中有哪六种数据类型

答:Undefined、String、Number、Null、Boolean、Object

JS 中六种数据类型中的 prototype 属性的功能以及用法

pytotype属性功能:为String、Boolean、Object 数据类型动态添加【扩展】属性以及方法,方便后面使用

添加属性语法:

1:String.prototype.添加的属性或者方法名
2:Boolean.prototype.添加的属性或者方法名
3:Object【方法名】.prototype.添加的属性或者方法名

获取【调用】prototype 添加的属性和方法语法:
1:“略略库”.添加的属性或者方法名
2:false.添加的属性或者方法名
3:实例化对象.添加的属性或者方法名

注意:

1:prototype 为什么样的数据类型动态添加属性和方法,那么获取或调用添加的属性和方法时,就用这个数据类型获取!!!

2:prototype 可以为上面哪三种数据类型动态添加属性和方法,当然也可以重写!

3:利用 prototype 为类添加属性时,要这样 类名.prototype.添加的属性或方法名

image-20211007105452195

JS中undefind、null、NaN的区别

JS 中undefind、null、NaN 三者的区别

1:undefind、null、NaN 数据类型不一样

undefined:Udefined

null:Null

NaN:Number

2:null 与 undefined 值【类型不相同】相等,其他两者不相等!

image-20211007105510895

JS 中 “==”以及“===”的区别

“==”:等号运算法,判断运算符两边的数据值是否相等,相等返回 true、不等返回 false

“===”:全等运算符,判断运算符两边的数据值与类型是否相等,相等返回 true、不等返回 false 【JS特有】

image-20211007105523408

JS 中怎么创建数组

创建语法:var arr = [“啦啦啦”,false,“略”,26,null ]

获取元组内数据:元组名 [ 数据的下标索引 ]

注意:

1:在 JS 中元组就相当于 python 中的列表

2:在 JS 中的元组内可以存放任何类型的数据!

image-20211007105542919

持续更新中…….