JavaScript-②

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值