【无标题】

一,对象 

   1.对象的数据类型 :复合数据类型,是容器(塑料袋)

    2.对象的增删改查 

        -增

                -创建对象 1.new Object() 2. 省略 new 3.对象字面量 直接写个 { }  4.写上属性{ 属性名:属性值,xxxx:xx}

                    要添加属性名,用点,要添加的是变量的值,用[ ]

                -添加属性 对象.属性名 =属性值 或者 对象[变量名]=属性值

        -删 delete 对象.属性名

        -改 和添加属性一样,不过是赋新值 

        -查 直接对象.属性名 查询就好(注:对于对象中没有的属性,不会报错,而是undefined)

3.对象的属性 

            属性名:任意值,没要求,但是过于特殊不能直接用,要 [  ],建议标识符规范命名

                        可用symbol作为属性名

                        可以用点来添加属性,点后的名是什么,属性名就是什么  也可以用 [ ]来添加属性,括号中为变量时,添加的属性名为变量的值

        属性值:可以任意数据类型,也可以是对象

4.in运算符

        语法: 属性名 in 对象名 (属性名要加引号'')

        检查 对象中是否有该属性,有返回 true ,没有false

5.对象字面量

        直接用{ } 创建对象 ,在{ }也可以写属性名和属性值 ,之间用逗号隔开

6.枚举 for in 

        -获取对象中的所有属性

       - for(let  propName in 对象名){ 语句...}

                propName是自定义的变量名,代表每一个的属性名

                对象名[propName ] 代表属性值

       - 不是所有属性都能枚举
            例如 符号symobl添加的属性

7.修改变量和修改对象

        参照原始值的可变 进行对比分析

可变理解为内存不变值可变,不可变可以理解为值变了内存就要变

        对于不可变变量,每次更改都会创建一个新的变量,而原始变量保持不变.而对于可变对象,可以在对象内部修改数据,而不必创建新对象.

所以 对象前面加 const ,禁止变量被重新赋值,这样对象里面的值也能改变

8.方法

        对象的属性为一个函数时,调用函数 就称为 调用对象的方法

二,函数

1.函数概念

        函数是存储代码的对象

        语法: function 函数名()  {语句....}

        调用函数:执行函数内的代码 函数名() 

        查看函数 直接写函数名

2.函数创建方式

        1.函数声明

                function 函数名()  {语句...}

        2.函数表达式

                const 变量=funtion()  {语句...}

        3.箭头函数

                ( ) => {语句...}

3.函数参数

        可以传递任何类型的值作为参数

        参数分为

                -形式参数 相当于在函数内声明了变量,但是没赋值

                -实际参数 实参会赋值给形参

                        当实参=形参,将对应的实参赋值给实参

                        当实参>形参,多余实参不使用

                        当实参<形参,多余形参值为undefined

        参数可以设置默认值

                例 const fn2 = (a=10) =>{语句....} 没有实参传递时,a为10

4.箭头函数的参数

        当箭头函数中形参只有一个时,可省掉括号()

        例 const fn2 = (a) =>{语句....} 变成  const fn2 = a =>{语句....}

5.对象作为参数

        当函数默认值为对象时,函数每次调用,就会创建新的对象(当函数执行完毕,会释放函数内部存储的所有变量的内存)

6.函数作为参数

        函数能作为参数进行传递

7.函数的返回值 return

        用return关键字来指定函数的返回值

        返回值没有要求,默认值为undefined

        return一致性,函数立即结束

8.箭头函数返回值

        当代码一行时,箭头函数的返回值可直接写在箭头后 例 const  sum=(a,b) => return a+b

写成 const  sum=(a,b) =>a+b

9.作用域

        作用域有全局作用域和局部作用域

                -全局作用域

                        在网页运行时创建,网页关闭时销毁

                        可以在任意位置访问

                -局部作用域

                        -块作用域: 在代码块执行时创建,执行完毕销毁
                                        只能在块内部访问,外部无法访问

                        -函数作用域:在函数调用时产生,调用结束后销毁
                                         每调用一次就会产生一个新的函数作用域

10.作用域链

        作用域链:使用变量时,用作用域链找变量

          就近原则,js解释器会在最近的作用域中寻找变量,没找到就逐层往上找,找到全局后依旧没有,就报错 xx没有定义(xx is no defined)

11.方法

        对象的属性为一个函数时,这个函数就是对象的方法

12.window对象和var

      window对象window是浏览器提供的一个对象,可直接访问
window对象的属性可以通过window对象访问,也可以直接访问(如document.write('xx') 等同于 window.document.write('xx'))
window对象代表的是浏览器窗口,通过该对象可以对浏览器进行各种操作
函数可 认为是window对象的方法 window.function fn(){语句..}
      varvar用于声明变量,作用和let相同,但是var不具有块作用域
在全局作用域中用var,会作为window对象的属性保存 window.b =20 等价于 var b =20
使用function声明的函数,会作为window的方法保存      funciton fn(){语句..} 在调用时 fn() 等同于 window.fn()
使用let声明的变量,存储在一个秘密的小地方(无法访问),不会存储在window中
在局部作用域中,没有使用var或let声明变量,变量会自动生成window对象的属性,变成全局变量 d= 10 等同于 window.d =10   变成这样 没有变量提升

  13.变量提升

提升变量,能够给预留内存空间,减少内存分配的次数
var的提升有提示,能在声明前访问变量(相当于在前面写变量的声明)
函数的提升有提升,在函数调用前声明函数 
let的提升有提升.在赋值前解释器禁止对该变量访问

    14.debugger 打端点

                在控制台点击源代码,选择打端点位置,刷新即可

15.立即执行函数

        只会调用一次的匿名函数,能够解决避免变量冲突的问题

         语法: (function( ){语句..} ( ) );   后面的()是调用函数的意思

           有()或[]开头的代码,在后面写分号,不然识别成 (xxx)(xxx)  调用函数 函数名()

16.this 

        this的概念 函数在执行时,js解析器每次都会传递一个隐含的参数,this,this会指向一个对象,根据函数调用的方式不同而指向不同

        this的指向 总结:谁调用指向谁

                以函数形式(函数名( )  )调用,this指向window        

                以方法的形式(对象.方法名( )   )  调用,this指向调用方法的对象

17.箭头函数

        箭头函数没有自己的this,他的this由外层作用域决定

        箭头函数的this和它的调用方式无关

        因为它比较稳定,不用看它的调用方式,所以常用

18.对象书写

        对象的属性名和属性值相同,可省略

                 const obj = { fn:fn,fn2:fn2}可改成 const obj = { fn,fn2}        

19.严格模式     

      哪个作用域需要,写上 "use strict" 

       禁止一些语法,更易报错,提升性能

       开发中,常用             

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值