数据类型
字符串类型:string
数字类型:number
布尔类型:Boolean
数组:array
对象:object
函数:function
空:null
未定义:undefined
基本数据类型
一、数据类型之字符串
1.单引号和双引号均可解析转义字符
2.单引号和双引号均不能解析变量
3.变量与字符串、变量与变量要使用+来连接。
4.单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要将单引号转义,同理,双引号相同。
+作用:拼接作用
总结:凡是在英文的单引号或者双引号内,输入的数据;不管是什么内容,都是字符类型数据。
//变量与变量案例
console.log(str1+str2+str3)
//变量与字符串案例
console.log(str3 + '=====啦啦啦啦啊啊啊')
二、数据类型之数值型
浮点数值
所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
var num = 1.2;
注意:如果小数点后面没有跟任何数字(如1.),可以作为整数值来保存。
如果浮点数值本身表示的就是一个整数(如1.0),该值会被转为整数
var num4 = 1.2e3; //等于1200
浮点数值的最高精度是17位小数,但在进行算术计算时其精度远远不如整数。
eg:浮点数计算案例
var num6 = 0.1;
var num7 = 0.2;
console.log(num6+num7) //不是0.3
NaN:即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
var res = 3%0
console.log(res) //结果:NaN 在js中,只要有NaN不影响js运算
NaN的特点:
1.任何涉及NaN的操作,结果都为NaN
2.NaN与任何值都不相等,包括NaN本身。
例如:下面的代码会返回false
alert(NaN == NaN);
三、布尔类型
布尔类型:true false
用处:
1)只要有比较的时候,就会用到bool
2)一般输出两种结果的时候也会到bool类型
复合数据类型
对象:{}
数组:[]
注意:对象是无序的;数组是有序的.
一、对象:对象的存在形式是以key:value键值对的形式存在。
key:为对象中属性
value:为属性的值 每个属性必须要对应一个值。
属性是不可变得,值是可变的,值可以为js中所有的数据类型;属性只能是js中的字符串。
注意:对象中属性的名字具有唯一性
eg:创建一个对象
var obj1 = {}
console.log(typeof obj1) //object
对象操作方法(一)
1.增、改 语法:对象名字.属性 = 值
如果对象中有这个属性,那么就是重新赋值的过程;如果对象中没有这个属性,那么就是给对象添加属性且赋值。
口诀:有则改之,无则增加
2.获取:
获取对象中属性的值(value) obj.key
获取之后,可以用变量接收,可以直接输出
对象操作方法(二)
语法:对象[‘key’] 注:[]中必须是字符串,因为对象中属性的数据类型是String
总结:[]对对象的操作 比 点更加严谨
eg:var a = 'ha'
gaunzhao.a = '哈哈' // 点直接给对象添加属性。不能访问变量 默认“点” 后数据就是字符串 非变量
gaunzhao[a] = '呵呵' // [] 中需要的市字符串,可以直接传字符串,也可以获取值为字符串类型的变量
二、数组:数组中数据可以是js中任何数据类型,数组是有序的,数组都有索引值;也就是数组的下标,从0开始
注意:数组中的数据可以重复出现
eg:创建一个数组
var arr = []
var arr1 = ['11',11,true,{name : 'lala'}]
总结判断数据类型的方法:
* 1.typeof 对象、数组、函数,输出都是object
* 2.instanceof 不能准确区分数组和对象
* 3.constructor 可以准确区分数组、对象、函数
判断是数组的方法:isArray()
其他数据类型
一、函数:
每一个函数都是完成一个任务,将任务中可以改变你的量作为形参,方法体是实现任务的业务逻辑,也是对形参接收到的实参的加工处理
- 形参 :形参名字是自定义的,作用为接收实参,供方法体使用;形参与实参是一一对应的。
- 实参:实际传入的参数是什么,在调用函数时传入 ;实参个数可以小于形参的数量
- 函数的方法体作用:完成函数任务的业务逻辑,也是对实参的加工处理
注意:形参就是定义几个等待赋值的变量;实参就是给形参进行赋值。
形参的个数 >= 实参的个数
注意:函数每调用一次;方法体中的代码都会执行一次
1.函数封装的思路:
* 1.明确函数的作用是什么
* 2.分析出任务中那些是可变的量,需要在调用函数时候传入
* 3.完成这个任务分为几个步骤,对形参做哪些处理
* 4.明确一个函数是否有返回值 return
2.函数的返回值:函数有返回值,也可以没有返回值
return 作用:
* 1.函数的返回值
有结果:可以用变量接受 函数执行时返回的结果;
没有结果:变量不能接收到函数执行后任何值,该变量为undfined。
* 2.在函数内部,如果执行了return,函数内部return以下的代码都不执行
*
注意:函数执行完毕后;就会被释放,没有记忆的功能。每次调用都是重现执行方法体中代码
3.Function构造函数:
注意:在使用Function()构造函数的时候,第一个字母要大写,而function是所有字母都是小写
eg:创建一个函数对象---函数
var fun = new Function('x','y','return x+y')
console.log(fun(1,1))
补充:语法:var 函数名 = new 构造函数
* var 函数名 = new Function(“参数1”,”参数2”,”参数3”……”函数体”)
* new作用:实例化对象
4.构造函数创建对象:
* 构造函数分为:js内置的构造函数 我们自定义的函数也可以作为构造函数
* 构造函数的作用:实例化对象
* new后面跟着的执行函数(不是变量)都是构造函数
* 构造函数语法:new xxx() xxx就是一个构造函数
eg:使用对象的构造函数,创建对象
var obj1 = new Object({
name:'lalal',
age:'a'
})
二、null
null 特殊的存在为空
三、undefined
undefined 是什么都没有