JS第五天笔记

1.对象
obj.name 中的name被称为属性名
* 属性名没有任何要求,任何值都可以作为对象的属性名
* 如果属性名太特殊了,则需要使用一个特殊的方式来设置:
* 语法:
* 对象[‘属性名’] = 属性值;
*
* 虽然如此,建议我们设置属性名时最好也遵循标识符的规范
加粗样式****
*** 读取属性:
* 对象[‘属性名’]**
* let obj = Object();
* obj.name = ‘孙悟空’;
* let n = ‘name’;
* console.log(obj[n]);

1—(2)对象的可变类型;
对象属于可变类型,对象中所存储的属性是可以被修改的
修改变量时,由于变量与变量是相互独立,修改一个绝对不会影响其他变量
修改一个对象时,如果有其他的变量也指向该对象,
* 则其它的变量也会被影响到
在这里插入图片描述
1–(3)**
对象字面量:
使用字面量创建对象,可以在创建对象的同时向对象中添加属性
* 使用{}创建一个对象,
* 可以在对象中指定需要的属性
* 属性名和属性值之间使用:连接,以,结尾,
* 最后一个属性最好不要再写,
**
在这里插入图片描述
1-(4)
对象字面量的属性枚举
for-in
* - for-in来枚举对象中的属性
* - 语法:
* for(let 变量n in 对象){
* 语句…
* }
*
* for-in会执行多次,
* 对象中有几个属性就执行几次
* 每次执行时都会将一个属性名赋值给变量

2
函数(Function)
* - 函数也是一个对象,也是用来存储数据的
* - 和普通对象不同,函数中可以用来存储代码,
* 而且可以在需要对其中的代码进行调用
* 函数声明:
* 语法:
* function 函数名(){
* 语句…
* }
*
* 调用函数:
* - 调用函数就是让函数中存储的代码执行
* - 语法:
* 函数对象()
*
* 使用typeof检查一个函数时,会返回 ‘function’ 表示是一个函数

* 函数的创建图片
2—(1)
函数的类别:
// 函数表达式
/
以let var const开头的 都是函数表达式
- 语法:
* const ,let 变量 = function(){
* 语句…
* };
*/
*在这里插入图片描述
函数声明
直接是函数开头的就是函数声明

在这里插入图片描述
*
立即执行函数
语法:
(function (){
语句:
} ) ();
以这样开头的就是立即执行函数 同时没有函数对象
- 立即执行函数会在函数定义完毕后立即调用,只会调用一次

在这里插入图片描述
2—(2)
函数的参数:
形参(形式参数)
* - 在定义函数时,可以在函数的()中来定义数量不等的形参
* - 形参就相当于在函数中声明了对应的变量,
* 但是并没有实际的值
*
实参(实际参数)
* - 在调用函数时,可以向函数中传递数量不等的实参,
* 实参会赋值给对应的形参
* - 在JS中不会检查实参的类型和数量
* - 可以传递任意类型的实参
* - 可以传递任意数量的实参
* 如果数量一样,则实参和形参一一对应
* 如果实参少,则没有对应实参的形参是undefined
* 如果实参多,则多余的不会被使用

案例:
在这里插入图片描述
2----(3)函数的返回值

  • 返回值是函数的执行结果
    * - 在函数中可以使用return 来设置函数的返回值
    * - 返回值可以是任意的数据类型
    * - 如果return后不跟任何值,
    * 或不写return则相当于return undefined
    * - return 执行函数就结束了,
    * return后的所有的代码都不会执行

    案例在这里插入图片描述
    在这里插入图片描述
    3
    对象的方法:
    方法(method)
    * - 对象的属性也可以是一个函数
    * - 当一个对象的属性是函数时,我们就称这个函数是当前对象的方法
    * 调用函数,称为调用对象的方法
    * - 函数和方法只是称呼上的不同,没有什么太本质的区别

    案例:
    在这里插入图片描述
    4.作用域:
    作用域(scope)
    变量的作用范围:
    全局作用域
    局部作用域{
    块作用域
    函数作用域
    }
    全局作用域
    —在我们网页打开时创建 关闭时销毁
    —所有的直接写在标签中的都位于全局作用域
    全局作用域中的所有变量,被称为全局变量,可以在页面的任意位置被访问
    * 全局作用域中的所有函数,被称为全局函数,可以在页面的任意位置被调用
    * - 在JS中有一个全局对象(global object)叫做window,
    * 在全局作用域中所有使用var声明的变量都会作为window对象的属性保存
    * 在全局作用域使用function定义的函数会作为window对象的方法保存
    * 函数实际上就相当于window对象的方法

    在这里插入图片描述
    5.
    变量的提升
    * - 在JS中所有使用var声明的变量,会在所有的代码执行前被声明
    * 也就是说我们可以在一个变量声明前就对其进行使用
    * 变量的提升只会提前声明,而不会提前赋值
    * - 不使用var声明的变量不会被提升,所以不能在声明前使用
    *
    * 函数的提升
    * - 在JS中所有以function开头的函数,会在所有的代码执行前被创建,
    * 所以我们可以在函数声明前就对其进行调用
    * - 使用函数表达式所定义的函数不会被提升,所以无法在声明前进行调用
    *
    *
    * JS的代码时如何执行的?
    * 1.预解析代码
    * - 找到代码中所有的使用var声明的变量,以function开头的函数
    * - 对var声明的变量进行提前声明,对于function开头的函数进行创建
    * 2.逐行执行代码

    声明变量时可以省略var或let 也就是相当于window.a=10;

    在这里插入图片描述
    6.函数作用域:
    函数作用域在函数调用时创建,在调用结束时销毁
    * - 函数每次调用都会产生一个新的函数作用域,函数作用域与函数作用域间相互独立
    * - 在函数作用域中声明的变量是局部变量,
    * 局部变量只能在函数内部访问,无法被外部访问
    * - 在函数内部,使用var声明的变量和使用function开头的函数也会被提升,
    * 函数作用域其实就是一个小的全局作用域
    * - 如果在函数内部声明变量时,省略var或let,则变量默认会成为全局变量(不希望出现)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一路冲冲冲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值