JavaScript第五章 数据类型

JavaScript数据类型

  • JS中数据类型有原始类型和引用类型,ES6之前的数据类型有6种,ES6及之后的数据类型有7种,新添加的是symbol
  • 这里以ES6为标准说明:
    原始类型:Undefined、Number、String、Boolean、Null
    引用类型:Object以及Object的子类
  • typeof
    JS中有一个运算符叫做typeof,这个运算符可以在程序的运行阶段动态的获取变量的数据类型
    语法格式:
typeof 变量名

typeof运算符的运算结果是以下6个字符串之一,字符串全部小写
“undefined”、“number”、“string”、“boolean”、“object”、“function”

一、Undefined

  • Undefined类型只有一个值,这个值是undefined
    当一个变量没有手动赋值,系统会默认赋值undefined,或者也可以给一个变量手动赋值undefined

二、Number

  • Number类型包括的值:
    整数、小数、正数、负数、NaN(不是数字)、Infinity(无穷)

1. NaN

  • 表示Not a Number,不是一个数字,但属于Number类型
  • 运算结果本来应该是一个数字,最后算完不是一个数字的时候,结果是NaN

2. isNaN()

  • 语法格式:
isNaN(数据)
  • isNaN结果是true表示不是一个数字;结果是false表示是一个数字

3. Infinity

  • 当除数为0的时候,结果为无穷大

三、Boolean

  • Boolean类型永远都只有两个值:true、false

1. Boolean()

  • 语法格式:
Boolean(数据)
  • Boolean()函数的作用是将非布尔类型转换成布尔类型
  • 转换规则
    不为空的字符串,转换成true
    非零的数字,转换成true
    Infinity转换成true
    null,undefined转换成false
    简记“有则为true,无则为false”

四、Null

  • null属于Null类型,但是typeof运算符的结果是"object"
var a = null;
alert(typeof a); // "object"

五、String

  • 在JS当中,字符串可以使用单引号,也可以使用双引号
  • 创建字符串对象:
// 第一种方式
var s = "abc";
// 第二种方式(使用JS内置的支持类String,可以直接使用,String的父类是Object)
var s = new String("abc");
  • 小string与大String
// 小string(属于原始类型String)
var a = "abc";
alert(typeof a); // string
// 大String(属于Object类型)
var b = new String("abc");
alert(typeof b); // object

无论大String,还是小string,它们的属性都是通用的

  • String常用属性:length、prototype、constructor
  • String常用函数:
函数函数说明
indexof获取指定字符串在当前字符串中第一次出现处的索引
lastIndexof获取指定字符串在当前字符串中最后一次出现处的索引
replace替换,只替换一次
substr截取子字符串
substring截取子字符串
toLowerCase转换小写
toUpperCase转换大写
split拆分字符串
  • substr与substring的区别
substr(startIndex,length)
alert("abcdef".substr(2,4)); // cdef
substring(startIndex,endIndex) // 不包含endIndex
alert("abcdef".substring(2,4)); // cd

六、Object

  • Object类型是所有类型的超类,另外定义和自定义的任何类型默认继承Object,会继承其所有的属性和函数
  • Object的属性:prototype(给类动态的扩展属性和函数)、constructor
  • Object的函数:toString、valueOf、toLocaleString

1. JavaScript的类

  • JS中定义类的语法
// 第一种
function 类名(形参){
		
}
第二种:
类名 = function(形参){
		
}
  • JS中创建对象的语法
new 构造方法名(实参); // 构造方法名和类名一致
  • 测试用例
function aBcd(){
	
}
// 把aBcd当作一个普通函数来调用
aBcd();
// 把aBcd当作一个类来创建对象
// new aBcd();
var obj = new aBcd(); // obj是一个引用,保存内存地址指向堆中的对象(JavaScript也有栈、堆的定义)
  • 在JS中,类的定义和构造函数的定义是放在一起来完成的,即类的定义同时又是一个构造函数的定义

2. prototype

  • prototype用来给类动态的扩展属性和函数
  • 测试用例
String.prototype.lzj = function(){
	alert("这是给String扩展的函数,函数名为lzj");
}
"qwesdada".lzj(); // 调用lzj函数

附: null,NaN与undefined

  • null,NaN与undefined的区别:
    数据类型不一样
    null,NaN,undefined对应的数据类型为Null,Number,Undefined
alert(typeof null); // "object"==>特殊:null属于Null类型,但是typeof运算符的结果是"object"
alert(typeof NaN); // "number"
alert(typeof undefined); // "undefined"
  • null,NaN与undefined的比较:
alert(null == NaN); // false
alert(null == undefined); // true
alert(NaN == undefined); // false
alert(null === NaN); // false
alert(null === undefined); // false
alert(NaN === undefined); // false
  • 经比较,null和undefined可以等同
  • JS中没有equals()方法比较,但是在JS中有两个比较特殊的运算符:“==”与“===”
    ==:等同运算符,只判断值是否相等
    ===:全等运算符,既判断值是否相等,又判断数据类型是否相等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayco江柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值