javascript 3/13

本文介绍了JavaScript中的数据类型,包括动态属性和基本数据类型的特点。深入讲解了函数的使用,如立即执行函数和参数传递。此外,还阐述了对象方法的创建与调用,以及如何通过for...in遍历对象属性。最后,详细解释了执行环境和作用域的概念,包括全局作用域、函数作用域以及变量声明提前的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript 3/13

数据类型

动态属性
var person = new Object();//构造一个对象存入person中
person.name = "Nicholas";//为该对象添加了一个名为name 的属性并赋值

注:不可以给基本数据类型添加属性

复制变量值
  • 复制引用数据类型的变量即两个变量指向同一个对象

在这里插入图片描述

函数
立即执行函数
无参的立即执行函数
(function(){
 alert("hhh");
 }
)();//()中写入匿名函数代表一个整体,这个整体就是立即执行函数,加个括号代表自身调用。环境运行到此处时可以直接执行此函数,且只执行一次
有参:
(function(a,b){
 alert("a:"+a+"b:"+b);
 }
)(1,2);
对象方法
var obj = new   Object();
        obj.name = "hhh";
        obj.age = 18;
//添加对象属性值为函数
        obj.startFun = function(){
            console.log("对象属性函数");//这个也属于是调用console对象的log方法
        };
        // console.log(obj.startFun);
//输出startFun函数体
        obj.startFun();//对象调用函数
枚举对象中的属性
// 枚举对象中的属性
        // for...in语句
        var obj = {
            name: "hhh",
            age: 18,
            gender: "male",
        };
        for(var n in obj){
            console.log(n);//打印属性名
            console.log(n + ":" + obj[n]);//打印属性值
        }
        // 遍历obj中的属性,每一次遍历时将属性名赋值给变量
执行环境及作用域
作用域
  • 作用域指一个变量的作用的范围
全局作用域:
  • 全局作用域在页面打开时创建,在页面关闭时销毁

  • 全局作用域中有一个全局对象window,它代表的是一个浏览器的窗口,它由浏览器创建我们可以直接使用

  • 在全局作用域中:
    创建的变量都会作为window对象的属性保存
    创建的函数都会作为window对象的方法保存

  • 全局作用域中的变量都是全局变量,在页面的任意的部分都可以访问的到

    变量的声明提前:

    使用var关键字声明的变量会在所有代码执行之前被执行,即var定义变量始终在所有代码之前(但是不会被赋值),如果没有var则没有这个属性

    函数的声明提前:

    使用函数声明形式[function 函数名(){}]创建的函数它会在所有的代码执行之前就被创建,所以可以在函数声明前被调用

    函数作用域:
    • 调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁
    • 每调用1次函数就会创建一个新的函数作用域,他们之间是互相独立的
    • 在函数作用域中可以访问到全局作用域的变量
    • 在全局作用域中无法访问到函数作用域的变量
    • 当在函数作用域操作一个变量时, 它会先在自身作用域中寻找(就近原则),如果没有就向上一级寻找,直到找到全局作用域,如果还没有就会报错.
    • 在函数中访问全局可以用window.变量名
    • 函数作用域中也有声明提前.
    • 函数声明也会在所有的代码执行之前被创建
    • 在函数中没有使用var声明的变量都会设置为全局变量,可在全局作用域中调用
    • 定义形参就相当于在函数作用域中声明了变量
执行环境
  • 全局执行环境是最外围的一个执行环境。Web 浏览器中,全局执行环境被认为是 window 对象
  • 所有全局变量和函数都是作为 window 对象的属性和方法创建的
  • 执行环境:当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。函数执行之后,栈将环境弹出,把控制权返回给之前的执行环境
  • 标识符解析是沿着作用域链一级一级地搜索标识符的过程
    window 对象的属性和方法创建的
  • 执行环境:当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。函数执行之后,栈将环境弹出,把控制权返回给之前的执行环境
  • 标识符解析是沿着作用域链一级一级地搜索标识符的过程

3-13 js训练

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3-13 js训练</title>
    <script>
        // 无参的立即执行函数
        // (function(){
        //     alert("立即执行函数hhh");
        // })();
        // 有参:
        // (function (a, b) {
        //     alert("a:" + a + "b:" + b);
        // }
        // )(1, 2);

        // 对象方法
        // var obj = new   Object();
        // obj.name = "hhh";
        // obj.age = 18;

        // obj.startFun = function(){
        //     console.log("对象属性函数");
        // };
        // // console.log(obj.startFun);
        // obj.startFun();

        // 枚举对象中的属性
        // for...in语句
        var obj = {
            name: "hhh",
            age: 18,
            gender: "male",
        };
        for(var n in obj){
            // console.log(n);//打印属性名
            console.log(n + ":" + obj[n]);//打印属性值
        }
        // 遍历obj中的属性,n为属性值
    </script>
</head>

<body>

</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值