玩转js之04-js数据类型

这篇博客主要介绍了JavaScript中的数据类型,包括基本数据类型(undefined、number、boolean、null、string)和引用数据类型(对象、数组、函数)。博客详细阐述了各种类型的特点、用法以及如何通过typeof操作符检测变量的数据类型。
摘要由CSDN通过智能技术生成

一、JS数据类型

5种基本数据: number null undfined boolean string
1种引用数据:object对象(函数 数组 时间 标签等等)

1、undefined

未定义,或者定义了变量但是没有初始赋值,为了程序的安全而设定的一种数据

            var a;
			console.log(a)//undefined  未定义,或者是定义了变量但是却没有初始化
			a=20
			console.log(a)

2、数字 number

表示整数和浮点数值,有精度问题,问题不大,忽略不计
a.toFixed(2) a保留两位小数
c.toFixed(2)/100*100 去掉保留两位小数的小数位0
b=Math.ceil(a) 向上取整数
c=Math.floor(a) 向下取整数
c = Math.round(a) 四舍五入取整数
~~c 取整,不常用
数字类型的数据有整数,浮点数等

             var n1=20
			 n1=100
			 n1=n1+1.2// n1取值100 然后把100跟1.2做加法运算 然后把运算的结果赋值给n1
			 //学生时代数学中  2+3=5
			 console.log(n1)

			// js不能用于科研运算  可以用作一般互联网产品 因为运算有精度
			console.log(0.1+0.2)

			var a=7
			var b=3
			var c=a%b //求余取模20除以3 整除了之后剩余多少  //a/b//a*b//a-b//a+b
			console.log(c)

			var a=3.01833//3.141592
			var b=a.toFixed(2)
			console.log(b)



			var a=1230000
			var b=123
			var c=a/b
			var d=c.toFixed(2)/100*100
			console.log(d)
			~~c
			


			var a=100.45
			var b=Math.ceil(a)//向上取整数
			console.log(b)

			var a=100.75
			var c=Math.floor(a)//向下取整数
			console.log(c)


			var a = 100.35
			var c = Math.round(a) //四舍五入取整数
			console.log(c)
			// 有高薪意向的同学  学习这几个函数的后面的参数

3、布尔数据 boolean

两种数据true和false(true为1,false为0)
true和false都是关键字,代表布尔值
布尔表达式用得多,true和false就是布尔表达式的结果

 <script type="text/javascript">
      	//布尔数据  boolean
		var a=true
		var b=false
		// true/false就是关键字 代表布尔值
		// 100>18 就是布尔表达式  它的表达的结果是布尔值
		
		var c=20//c变量中保存的数字  数字这种类型的数据有很多:100  200  10.2  3.14
		if(b){
			console.log(6666)
		}
		if(100<18){
			console.log("可以喝酒")
		}
      </script>

4、null 空

null 这种类型的数据只有一个数据就是null,它代表了一个变量是有数据的(占位),只不过现在还没有写业务

<script>
			null //空这种类型的数据只有一个数据就是null;
			var a = 200;
			a=400;
			a=null;
			var b;
			console.log(a)
			console.log(b);
			//null 的意义==>它代表了一个变量是有数据的 只不过还没有写业务数据
			//undefined的意义==>为程序的安全而设定的一种数据
			console.log(hqyj)
		</script>

5、String 字符串

两个变量相加时,只要有一个是字符串类型,相加就是将另一个不是字符串的转成字符串然后进行字符串拼接
var a=“hello” 字符串的双引号不是字符 是一种标记为了跟变量名做区分
var a=‘he"l"lo’ 字符串可以是单引号 也可以是双引号 还可以是反引号(es6),内双外单,内单外双
var c=a+b 如果a或者b有任意一个是字符串 就会把另外一个不是字符串的数据转化为字符串然后拼接

<script>
			// 变量中可以保存什么数据?
			// 5种基本数据: number  null  undfined  boolean string
			var a="hello"//字符串的双引号不是字符 是一种标记为了跟变量名做区分
			var b=a
			console.log(a)
			
			var a='he"l"lo'//字符串可以是单引号  也可以是双引号  还可以是反引号(es6)
			var a='he"l"lo'
			var a="he'l'lo"
			console.log(a)
			
			var a="hello"
			var b="hqyj"
			var c=a+b
			console.log(c)
			
			
			
			var a=100
			var b="200"
			var c=a+b// 如果a或者b有任意一个是字符串  就会把另外一个不是字符串的数据转化为字符串然后拼接
			console.log(c)
			
			
			
		</script>

6、引用数据

引用数据是什么?
引用数据类型:一个大型的复杂的基本数据和引用数据的"集合体"
基本数据:
var b=a //动态运行流程==>第一步 先声明一个变量叫b,第二步先取a变量中保存的值,第三步把取到的20赋值给b
引用数据:
var b=a//动态运行流程==>第一步 先声明一个变量叫b,第二步把变量a对应的引用数据的内存空间让b变量也去引用

// 基本数据:
			var a=20
			var b=a//动态运行流程==>第一步 先声明一个变量叫b,第二步先取a变量中保存的值,第三步把取到的20赋值给b
			console.log(b)
			b=200
			console.log(a)
			// 引用数据类型:一个大型的复杂的基本数据和引用数据的"集合体"
			var a=[10,20,30]
			var b=a//动态运行流程==>第一步 先声明一个变量叫b,第二步把变量a对应的引用数据的内存空间让b变量也去引用
			// console.log(a)
			// console.log(b)
			// console.log(b[1])
			b[1]=200
			console.log(b)
			console.log(a)

(1)数组

数组:

  • 数组就是引用数据类型的
  • 保存的元素用逗号隔开
  • 数组取元素是通过下标取值的 从0下标开始的
  • 数组中可以保存很多数据,每一个数据的类型是不限定的
var arr = [10, 20, 30, 500, 200,"hello",18,null,true,undefined]
			var n1 = arr[3]
			console.log(n1)
			var n2 = arr[0]
			console.log(n2)
  • 如果知道数组中有一个元素 但是不知道它的下标,可以直接打印数组
console.log(arr[8])
			
			var arr=["hello",20,,,100]
			// arr[2]="h5"
			console.log(arr)
  • 数组是一种引用类型的数据,它是用来保存数据的,它也可以保存数据
var arr=[200,"hello",[10,20,30],400]
			console.log(arr[0])
			console.log(arr[1])
			console.log(arr[2])
			var arr2=arr[2]
			var re=arr2[2]
			console.log(re)
			console.log(arr[2][1])//"hello"?
			
			var arr=[10,[10,[10,200]]]
			console.log(arr[1][1][1])//200
			
			var arr=[["导航1","导航2"],["分类1","分类2"]]
			var re=arr[1][0]
			console.log(re)//分类1

(2)对象-object

  • 跟数据一样 用来保存数据的 只不过每一个数据都自己设计"下标"(键值对的键)
  • 可以保存任何类型的数据
var obj1={name:"karen",age:24}
			console.log(obj1)

			var a1=obj1["name"]
			console.log(a1)

			var b1=obj1["age"]
			console.log(b1)

			obj1["age"]=25
			console.log(obj1)

			var obj2 = {
				name: "jack",
				age: 25,
				books: ["js", "css", "ts"]
			}

			// console.log(obj2["age"])
			// console.log(obj2["books"])
			console.log(obj2["books"][2])
			

-含有变量的取值
通过成员名去取值
取值obj[“name”]<>obj.name(语法糖)
var name=“x”
obj[name]=“ss”<
>obj.x name是变量,需要去取值

笔试题:
给对象添加属性


			var a=20
			var arr=["a",200]//取a的值存到数组的下标0的位置
			console.log(arr[0])//
			
			var obj3={name:"jack"}
			obj3["name"]="karen"//如果已经有这个属性了 就会覆盖之前的值
			obj3["age"]=25//如果没有age成员 就会添加一个新成员age 然后赋值25
			var a="Jiang"
			var b="firstname"
			obj3[b]=a//obj3["firstname"]="Jiang"//补一行代码,要求是b必须使用到变量a和b
			console.log(obj3)//{name:"karen",age:25,firstname:"Jiang"}
  • 语法糖,对象取成员的简便方法
obj["name"]<===>等价于obj.name

(2)函数-function

  • 函数的写法 function关键字小括号 大括号,函数不会自己运行大括号中的代码
    function() { }
  • a() 函数的调用==>让大括号的代码运行起来 而且调用一次就会运行一次
	var a=function() {
				console.log(6666)
			}
			a()   //运行函数
  • 引用数据 就是一个内存空间(就是一个数据容器)
			var fn = function() {
				console.log(123)
			}
			// fn["hqyj"]=666
			fn.hqyj=666
			fn()
			console.log(fn.hqyj)
  • 函数是一种非常特殊的对象(引用数据) 因此 typeof检测函数的结果不在是object 而是function
var f1=function  () {				
			}
			console.log(typeof f1)
			
			var f2=function() {
				
			}
			f2.age=200
			
			var f3=f2
			f3.age=100
			console.log(f2.age)
  • 函数声明了不会直接运行,必须调用了才能运行

二、检测一个变量中保存的数据是什么类型的数据–typeof

对一个值使用 typeof 操作符可能返回下列某个字符串:

  • “undefined”——如果这个值未定义;
  • “boolean”——如果这个值是布尔值;
  • “string”——如果这个值是字符串;
  • “number”——如果这个值是数值;
  • “object”——如果这个值是对象或 null;
  • “function”——如果这个值是函数。

typeof的返回值都是字符串数据类型

var re=typeof(a)
			console.log(re)
			
			var re=typeof(200)
			console.log(re)
			
			var re2=typeof("hello")
			console.log(re2)
			
			
			var re3=typeof(null)
			console.log(re3)
			
			var re4=typeof(undefined)
			console.log(re4)
			
			
			var re5=typeof(true)
			console.log(re5)
			
			var re6=typeof(function(){})
			console.log(re6)
			

2021年秋招题:
考点:typeof的返回值都是字符串数据类型

// 2021年秋招的
			var a=100
			a=a+21
			var b=a%19
			var re7=typeof(b)
			// 选择题 re7变量的数据类型是什么?
			console.log(re7)//取出变量re7的值 并打印
			var re8=typeof(re7)
			console.log(re8)//取出变量re8的值,也就是re7的数据类型 并打印
			
			var b=a+20
			var re=typeof(a)
			console.log(re)

总结

js的五种基本数据类型:undefined、number、null、boolean,string
一种引用数据:可以是数组,对象,函数
检测一个变量中保存的数据是什么类型的数据–typeof
typeof的返回值都是字符串数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值