一、数据类型分类

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); // objectvar obj = new Object();
console.log(typeof obj); // objectvar 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”

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

  1. 前端基础三之JavaScript基础

    文章目录 题外话 前言 1. JavaScript基础 1.1 JavaScript介绍 1.2 基础语法 1.2.1 Hello World 1.2.2 注释 1.2.3 变量 1.2.4 数据类型 ...

  2. 前端基础三:ECMAScript

  3. [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...

  4. ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...

    JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...

  5. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  6. 前端基础(十一、JS 输出、变量、基本数据类型)

    十一.JS 输出.变量.基本数据类型 JS输出 JS变量 JS 标识符 JS 声明变量 基本数据类型 typeof JS的基本数据类型 JS输出 JS支持以下五种输出: 使用 console.log( ...

  7. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

    原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server ...

  8. Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)

    Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...

  9. Python 可变数据类型和不可变数据类型 - Python零基础入门教程

    目录 一.关于内存 二.可变数据类型和不可变数据类型 1.可变数据类型和不可变数据类型区别 2.不可变数据类型 3.可变数据类型 三.重点总结 四.猜你喜欢 零基础 Python 学习路线推荐 : P ...

最新文章

  1. R语言笔记4:向量、矩阵的数学运算
  2. python输入输出-python输入与输出
  3. php sprintf %1,PHP sprintf() 函数的应用(定义和用法)
  4. [C # 读书笔记]interface 接口 abstract
  5. python 文件格式转换_python实现txt文件格式转换为arff格式
  6. ASP.NET中常用输出JS脚本的类(改进版)
  7. 【C语言】创建一个函数,利用该函数将字符串中的小写字母转换为大写字母
  8. mysql 2049_mysql数据库备份与还原,解决40101和ERROR 2049错误
  9. Python——EM(期望极大算法)实战(附详细代码与注解)(二)
  10. struts mysql_Struts2连接MySQL数据库(Struts2 MySQL)
  11. Axure综合小案例(动态时钟)
  12. cisco下模拟Linux防火墙,Cisco防火墙HA实例
  13. python pyplot 宽高等比_python – 更改matplotlib中子图的宽高比
  14. linux海报制作软件,用 OpenOffice.org 3.2 Draw 制作海报
  15. 2022年房地产市场趋势展望
  16. 2022年拼多多双十二活动什么时候开始?会有哪些福利?
  17. hexo博客设置域名
  18. CAD属性编辑操作——快速选择
  19. 数据挖掘与机器学习——离群点检测之孤立森林(isolate forest)
  20. win7 打开图片提示内存不足

热门文章

  1. 2022 云栖大会 | 一体化大数据智能峰会预约开启
  2. 修改vscode终端字体
  3. 调用“elm_kernel_adda>kernel_matrix3“时,未对输出参数“omega“ (可能还包括其他参数)赋值。
  4. 采用EM算法对高斯混合模型(GMM)进行参数估计
  5. 北京内推 | 华为诺亚方舟实验室招聘自动驾驶仿真实习生
  6. Linux7浏览器打不开网页,centos7浏览器打不开网页
  7. 统计单词个数———有穷状态机编程
  8. 浅谈TC10休眠唤醒规范
  9. 秒云助力中电科32所发布“基于拟态应用集成框架的SaaS云管理平台解决方案”
  10. Java基础 学习笔记7