Js基础(函数、对象)

 一、函数基础认识

       1.1 函数:

            function ,是被设计为执行特定任务的代码块。

       1.2 函数使用 

            目标:掌握函数语法,把代码封装起来。

function 函数名() {
    函数体
}

            函数命名规范:

                和变量命名基本一致、精良使用小驼峰式命名法、前缀应该为动词。 

动词含义
can判断是否可执行某个动作
has判断是否含义某个值
is判断是否为某个值
get获取某个值
set设置某个值
load加载某些数据

            函数调用语法:

                函数名() ;声明(定义)的函数必须调用才会真正被执行,使用()调用函数。

        1.3 函数传参

            有参数的函数声明和调用

function 函数名(参数列表) {
    函数体
}

                        参数列表:

                                1. 传入数据列表

                                2. 声明这个函数需要传入几个数据

                                3. 多个数据用逗号隔开

                        形参和实参:

                                形参可以理解为是在这个函数内声明的变量;实参可以理解为是给这个变量赋值。

// 声明        (形参, 形参)
        function getSum(num1, num2) {
            document.write(num1 + num2)
        }
        // (实参, 实参)
        getSum(1, 2)

          1.4 函数返回值

                  处理结果返回给调用者;根据需求,来设定需不需要返回值。

                  用return返回数据

return 数据

                      函数内部只能出现1次return,并且 return 后面代码不会再被执行,所以 return 后面的数据不要换行写;return 会立即结束当前函数;函数可以没有return ,这种情况函数默认返回值为 undefined 。 

         1.5 作用域及作用域链 

                  作用域概述 :

                        代码可用范围;作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。

                        全局作用域  (全局有效)、  局部作用域 (局部有效)、块级作用域( {}内有效 

                 变量的作用域:

                         在js中,更具作用域的不同,变量可以分为 :

                                全局变量:函数外部的 let 变量

                                局部变量:函数内部的 let 变量

                                块级变量 : {}内部的 let 变量

                        特殊情况:如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也是当全局变量来看,不推荐。

        function fn() {
            num = 10
        }
        fn()
        console.log(num)

                变量访问原则-作用域链 

                        根据在内部函数可以访问外部函数变量这种机制,用链式查找决定那些数据能被内部函数访问,被称为作用域链。采取就近原则的方式来从查找变量最终的值。

          1.6 匿名函数

                  函数可以分为:

                        具名函数:声明:function fn(){}

                                          调用: fn()

                        匿名函数: function(){}

                将匿名函数赋值给一个变量,并且通过变量名称进行调用,将这个成为函数表达式 。

                        语法:

    let fn = function () {
        //函数体
    }

                       调用: 

    fn()  //函数名()

                 立即执行函数 

                        避免全局变量之间的污染。

                        语法:

    // 方式1
    ( function () { console.log(11) })();

    // 方式2
    ( function () {console.log(11)}());

二、对象(object)

        对象是一种数据类型,是无需得数据的集合;可以详细描述某个事物。

        1.1 对象使用

                 对象声明语法:

        let 对象名 = {}

                对象由属性和方法组成:

                        属性:信息或叫特征。

                        方法: 功能或称行为。

        let 对象名 = {
            属性名:属性值,
            方法名:函数
        }

                属性访问: 声明对象,并添加了若干属性后,可以使用,或 [] 获得对象中的、属性对应的值。

    let person = {
        name: 'andy'
        age: 18
        sex:'男'
    }
    console.log(person.name)  
    console.log(person.age)   

    //也可以写成这样
    //console.log(person['name'])
    //console.log(person['age'])

                对象中的方法:数据行为性的信息称为方法,本质是函数。 

                       a. 方法是由方法名和函数两部分构成。

                        b. 方法是依附在对象中的函数。

                        c. 方法名可以使用“或”,一般情况下省略,除非名称遇到特殊符号(空格、中横线等)。

        let person = {
            name: 'andy',
            sayHi: function() {
                document.write('hi~~')
            }
        }
        person.sayHi()  //对象名.方法名()

                对象中的方法访问:   对象名.方法名()

        1.2 操作对象

                 对象本质是无序的数据集合,操作数据就是 增 删 改 查 语法:

查:查询对象     

对象.属性  或者  对象['属性']    

对象.方法    

     改:重新赋值

     对象.属性 = 值

     对象.方法 = function() {}

增:对象添加新的数据    

对象名.新属性名 = 新值    

     删:删除对象中属性

     delete 对象名.属性名

        1.3 遍历对象

                 对象没有数组一样的length 属性,无法确定长度。

                对象里面是无需的键值对,没有规律,不像数组里面有规律的下标。

        let obj = {
            uname: '小明',
            age: 18,
            sex: '男'
        }
        /* 
        for  in  循环语句
        语法:
        for (let k in 对象) {}     |重点|
        k 变量    k 或者 key
        */
       for (let k in obj) {
            console.log(k)  //属性名
            //console.log(obj.k)   //obj.k 意思是 obj 里面的 k属性;打印出来是undefined
            console.log(obj[k])    //能正常打印出属性值,k是变量,不加引号
            /* 
            console.log(obj['k']) 
            这个写法和console.log(obj.k)是一样的
            */


            /*
            为什么这么写?
            k === 'uname' === 'age' === 'sex' 
            obj.['sex'] === 18
             */

             /*
             获得对象属性是 k
             获得对象值是 obj[k] 
              */
       }

        1.4 内置对象

                 内置对象 Math

                        Math 对象是Js提供的一个 计算 对象;提供了一系列做数学运算的算法。

                                方法有:

                                        random:生成0-1之间的随机数(包含0不包含1)

                                        cell:向上取整

                                        floor:向下取整

                                        max:最大数;min:最小数

                                        pow:幂运算

                                        abs:绝对值                

                                        ······

        1.5 拓展-基本数据类型和复杂数据类型

                        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值