前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)

简介: 本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。

一、数据类型分类

1.1、数据类型分类

JavaScript的数据类型为弱类型,即最开始的时候并不知道变量是什么类型,必须通过后面的值才能知道。
JavaScript的数据类型分为简单数据类型(也称为基本数据类型)和复杂数据类型(也称为引用数据类型)。
基本数据类型有:Number、String、Boolean、Undefined、Null
复杂数据类型有:Object

基本数据类型

1.2、typeof 操作符

语法:typeof(变量) / typeof 变量。
例1:typeof的使用

var num1 = 10;
console.log(typeof(num1), typeof num1);//number number

可以查看这篇文章:
最简单的方式理解typeof、instanceof、hasOwnProperty

1.3、Number 类型
Number类型即数值类型,主要作用于存储数据,参与数学运算。
例1:Number 类型即数值、数字

// 1.1 普通整数和小数
var num1 = 10;
var num2 = 2.5;
console.log(typeof(num1), typeof num2);

// 1.2 负值
var num3 = -0.2;
console.log(num3, typeof num3);

// 1.3 八进制,以0开头并且没有超过8的值,则为8进制
var num4 = 070;
console.log(num4, typeof num4); // 56 number

// 1.4 十六进制,0x开头,则为16进制
var num5 = 0x10;
console.log(num5, typeof num5); //15 number

Number类型即数值类型,即数字,包括整数、小数、八进制、十六进制等,除这些简单的数字以外,在Number类型中还有几个比较特殊的情况。

例2:特殊的Number类型

//1.1 NaN  not a number  算术运算不能得到正常数字都会返回NaN
var num5 = 'a' - 5;
console.log(num5, typeof num5); // NaN number

// 1.2 无穷大
var num6 = 1 / 0;
console.log(num6, typeof num6); // Infinity number

// 1.3 小数相加 会有一点偏差  
console.log(0.1+0.2); // 0.30000000000000004

在上面特殊的Number类型中,需要特别注意的就是NaN,算术运算不能得到正常数字都会返回NaN,并且任意两个NaN都是不相等的。

1.4、String 类型
String类型即字符串类型,是用引号引起来的数据,单双引号都可以,“web” 或’w’。
例1:string 类型

var str1 = 'abc';
var str2 = "123";
console.log(typeof str1,typeof str2); //string string

需要注意的是,除了引号引起来的是字符串以外,所有我们从input表单中获取的用户输入的内容都是字符串,哪怕输入的是数字。
例2:

oBut.onclick = function () {
   
    var value = oIn.value;
    console.log(typeof value); // string
}

字符串是用来数据存储使用频率非常高的一个类型,其中最基本的操作有:

  • 字符串.length : 获取当前字符串的长度
  • 字符串.charAt(下标):在字符串中获取对应下标的字符,下标从0开始
  • 字符串[下标]:在字符串中获取对应下标的字符,ie7及以下获取到undefined

例3:

var str = "abc";
// 字符串.length属性  获取字符串的长度,从1开始数
console.log(str.length); //3

// 字符串.charAt(下标)  获取字符串中某一位字符  下标(位置):从0开始
console.log(str2.charAt(0)); //a
console.log(str2[0]); // IE7及以下返回undefined

1.5、Boolean 类型
例1:Boolean 类型只有真和假,即 true、false

var bool1 = true;
var bool2 = false;
console.log(typeof bool1);
console.log(10>20); //false
if(10>20){
    // if的小括号里面,会自动转换成boolean类型
alert(true)
};

除了通过比较能得到Boolean的值以外,还有一个口诀来判断条件是否为真:“非0为真,非空为真”即0为假,其他数字为真,空字符串为假,其他为真。

1.6、null 与 undefined
例1:null 表示值为空,undefined 表示变量没有初始化,值的空缺。

// null 表示值为空
var nu = null;
console.log(nu, typeof nu); // null 'object'

// undefined
var def; // 变量没有初始化,表示值的空缺
console.log(def, typeof def); // undefined 'undefined'

null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
undefined:Undefined类型,当声明了一个变量未初始化时,得到的就是undefined。

区别:
null是JavaScript的关键字,它是一个空对象指针,和其它语言一样都是代表“空值”,不过 undefined 却是JavaScript才有的。undefined是在ECMAScript第三版引入的,为了区分空指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
undefined:Undefined类型,当声明了一个变量未初始化时,得到的就是undefined。
null是JavaScript的关键字,它是一个空对象指针,和其它语言一样都是代表“空值”,不过 undefined 却是JavaScript才有的。undefined是在ECMAScript第三版引入的,为了区分空指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。

复杂数据类型

1.7、Object
对象类型object:具体的东西(事物)都可以看作对象,也就是说万物皆对象(从页面当中获取的所有元素(标签)都是对象类型)。
例1:

console.log(typeof document); // object
console.log(typeof window); // object

var obj = new Object();
console.log(typeof obj); // object

var obj1={
   
name:"LiuQing",
age:18,
city:"北京"
};
// 获取属性值
console.log(obj1.name); // LiuQing
console.log(obj1['age']); // 18
console.log(typeof obj1); // object

声明object对象类型有两种方式,一种通过关键字new实例化对象(var obj=new Object()),还有一种通过字面量的形式声明对象(var obj1={})。在object数据类型中,存储值时,通过键值对的形式存储(name:”LiuQing”)其中name叫做键名(属性名),”LiuQing”叫做键值(属性值)。

1.8、函数 function
函数主要用于存储代码块,在需要的时候调用,因此一个完整的函数过程有两步,存和用。
例2:

函数是用来存储代码块的,在需要的时候调用
// 声明函数:function 函数名(){ 代码块 }
function fun() {
   
console.log("函数");
}
console.log(typeof fun); // function
fun(); // 调用函数

1.9、数组 array
数组可以将多个数据存储在一起,js 里面的数组项没有类型限制,一个数组当中可以存放任意类型的数据。
例4:

// 数组 可以存储任意类型的数据,如下,数组中放了对象和数组
var arr = [1,'fd',{
   'name':'fd'},[23,4]];
console.log(arr, typeof arr);
console.log(arr.length); // 获取数组中元素的个数
console.log(arr[2]); // 通过下标获取数组某一项,下标从 0 开始

2.0、typeof 返回值

  • 所有的数据类型通过typeof得到的类型有:
  • 如果这个值未定义,返回----“undefined”
  • 如果这个值是布尔值,返回----“boolean”
  • 如果这个值是字符串,返回----“string”
  • 如果这个值是数值,返回----“number”
  • 如果这个值是对象或null,返回----“object”
  • 如果这个值是函数,返回----“function”
目录
相关文章
|
8天前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
124 59
|
1天前
|
前端开发 JavaScript
前端基础(四)_数据类型的强制转换
本文探讨了JavaScript中数据类型的强制转换方法,包括将其他类型转换为Number类型(使用`Number`函数)、转换为String类型(使用`toString`方法或`String`函数)、以及转换为Boolean类型(使用`Boolean`函数)。同时,文章还讨论了`parseInt`和`parseFloat`函数用于从字符串中解析出整数或浮点数,以及`isNaN`函数用于检测一个值是否是非数字。
6 2
前端基础(四)_数据类型的强制转换
|
1天前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
9 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
1天前
|
Web App开发 JavaScript 前端开发
前端基础(一)_初识JavaScript
本文介绍了JavaScript的起源、核心组成(ECMAScript、DOM、BOM),并解释了JavaScript的三种引入方式:行内引入、内部引入和外部引入,以及`window.onload`的使用,最后讨论了网页、网站、浏览器和兼容性的概念。
7 2
前端基础(一)_初识JavaScript
|
1天前
|
前端开发 JavaScript
前端基础(八)_JavaScript循环(for循环、for-in循环、for-of循环、while、do-while 循环、break 与 continue)
本文介绍了JavaScript中的循环语句,包括for循环、for-in循环、for-of循环、while循环、do-while循环以及break和continue的使用。
8 1
前端基础(八)_JavaScript循环(for循环、for-in循环、for-of循环、while、do-while 循环、break 与 continue)
|
2天前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
10 2
前端JS读取文件内容并展示到页面上
|
1天前
|
前端开发 JavaScript API
React、Vue.js 和 Angular前端三大框架对比与选择
前端框架是用于构建用户界面的工具和库,它提供组件化结构、数据绑定、路由管理和状态管理等功能,帮助开发者高效地创建和维护 web 应用的前端部分。常见的前端框架如 React、Vue.js 和 Angular,能够提高开发效率并促进团队协作。
12 4
|
1天前
|
前端开发 JavaScript
前端基础(五)_运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性、数据类型的隐式转换)
本文介绍了JavaScript中的算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性以及数据类型的隐式转换。
7 3
|
5天前
|
JavaScript 前端开发 开发者
基于Vue.js的前端框架有哪些?
Vue.js 是一款流行的前端 JavaScript 框架,用于构建单页面应用(SPA)。除了 Vue.js 本身,还有许多基于 Vue.js 的前端框架和 UI 库,它们提供了更多的功能和组件,以便开发者能够快速构建应用程序。
15 6
|
14天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
31 3