1.数据类型
2.typeof
• typeof 就是负责提供这方面信息的操作符。对一个值使用 typeof 操作符可能返回下列某个字符串:
•"undefined" ——如果这个值未定义;
•"boolean" ——如果这个值是布尔值;
•"string" ——如果这个值是字符串;
•"number" ——如果这个值是数值;
• "object" ——如果这个值是对象或 null ;
•"function" ——如果这个值是函数
3.虽然在检测基本数据类型时 typeof 是非常得力的助手,但在检测引用类型的值时,这个操作符的用处不大。通常,我们并不是想知道某个值是对象,而是想知道它是什么类型的对象。为此,ECMAScript提供了 instanceof 操作符,其语法如下所示:
•result = variable instanceof constructor
•如果变量是给定引用类型的实例,那么instanceof 操作符就会返回 true ,否则返回fasle
——————————————————————————————————————————
函数:
1.函数主要作用:
•a.定义可以重复使用的业务逻辑(封装逻辑定义成逻辑的复用)
•b.事件处理函数(如点击事件onClick)
•c.作为引用类型的构造方法(函数来构建新类型)
2.如何声明函数
①声明一个函数类型为function的变量
②ECMAScript不存在方法的重载现象,即无法通过参数个数和类型的不同来区分不同的函数
(方法重载定义:方法名同参数列表不同)
百度百科定义:方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数
所以js中没有方法重载,执行的时候根本不看参数的个数
3.重名的函数处理办法:
•同一上下文,后定义的函数会覆盖先定义的函数。
不同上下文,子上下文中的函数会隐藏父上下文中的函数
4.接收多个参数——内置对象arguments
•ECMAScript 函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。
•原因是 ECMAScript 中的参数在内部是用一个数组(Array-like)来表示的。
•在函数体内可以通过 arguments 对象来访问这个参数数组,从而获取传递给函数的每一个参数。
function sayHi() {
alert("Hello " + arguments[0] + "," + arguments[1]);
}
sayHi(‘jason’,’John’)/sayHi();调用均是合法的
5.因为 ECMAScript 中的函数名本身就是变量,所以函数也可以作为值来使用。
可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。
————————————————————————————————————————————————————
函数的声明_2种
方法一:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
let max=function(num1,num2){
return num1>num2?num1:num2;
}
console.log(typeof max);
</script>
</head>
<body>
</body>
</html>
方法二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
function max(num1,num2){
if(typeof(num1)!='number'
&&!(num1 instanceof Number)){
throw new Error("第一个参数必须为数字类型")
}
if(typeof(num2)!='number'
&&!(num2 instanceof Number)){
throw new Error("第二个参数必须为数字类型")
}
return num1>num2?num1:num2;
}
// let m=max(10,"20");
// alert(m);
console.log(typeof window.max);
let max=100;
console.log(typeof window.max);
</script>
</head>
<body>
</body>
</html>