Js的数据类型可以分为简单数据类型和复杂数据类型
简单数据类型有5种,Number,String,Boolean,undefined,null
1.Number数字类型 ,在控制台显示颜色位蓝色
整数,浮点数,科学计数法
NaN是Number类型,但是NaN != NaN
2.String字符串型 , 控制台显示黑色
<1>.单/双引号包裹,成对出现
<2>.str.length 获取字符串的长度
<3>.转义字符 ’ , ” , (换行)
3.Boolean 布尔类型 true/false 控制台位蓝色
- Undefined 控制台位灰色
- Null 控制台为灰色
数据类型的转换
1.转换为Number
parseInt()取整,不要小数
parseFloat()取小数,遇到非数字停止
Number()整体判断,有非数字出现,返回NaN
+ (最常用,代表正号)var sum = +prompt(‘请输入数字’);
2.转换为String
String()
str.toString();
拼串 age+””;
3.转换为Boolean
Boolean();
!!num;
转成false的几个特殊值:undefined ,null ,NaN ,0 , “” , false
4.NaN说明:表示一个无法用数字表示的数字
不等于任何值,包括它自己
类型是Number
复杂数据类型: 数组,函数,对象
函数
目的:开发中有很多重复的需求,赋值粘贴会冗余代码
定义:对一段重复代码的封装,一次声明,多次使用
函数的声明和调用:
- 声明: function 函数名() {……}
- 调用: 函数名();
函数的参数
- 形参:函数声明时,定义在函数名()内的参数,就叫形参
形式参数:没有值和类型(默认),------在调用函数时,通过传递过来的实参值决定,占位置的作用
- 实参: 在函数调用时,传递过去的参数,就叫做实参
实际参数,有具体的值和类型
作用:在函数调用时,将值传给形参
注意:简单数据类型传递的是值,复杂数据类型传递的是地址
关于函数参数传递的补充说明:
参数(实参,形参)一一对应
(1).多传
后面的会被忽略,但实际传过去了,存在函数内部内置的arguments数组中
(2)少传
没有接收到的形参就是undefined
函数的返回值
如果希望函数的执行有结果,通过return 返回值
return 后面的代码不执行,是函数的结束语句
return 返回岁的值就是这个函数调用的结果
函数的三要素:
函数名,函数参数,函数返回值
作用域及其变量(变量起作用的区域)
1.全局作用域:script标签内,函数外
全局变量: 在全局作用域声明的变量,可以使用在任何地方
2.局部作用域:函数内的区域(会有多个函数,即多个局部作用域,相互之间没有关系)
局部变量: 在局部作用域声明的变量,作用于当前函数内
隐式全局变量
给一个从未声明过(全局和局部都没有声明)的变量直接赋值,就是隐式全局变量
声明函数的两种表达方式
- 函数声明式
function fn(){……}
书写时可以先调用,后声明
- 函数表达式
Var fn= function() {……}
必须先声明,后调用
匿名函数
- 函数表达式
var fn= function(){…}
- 匿名函数自调用
(function() {……})();
可以防止全局变量的污染
预解析
在代码执行时,让函数声明和变量声明提升
- 变量,函数同名,函数优先级高,覆盖变量
- 变量提升,不赋值
- 函数提升,不调用
- 同名变量,第一个生效
- 同名函数,后面覆盖前面