• 对象 函数


    对象(Object)

    对象是JS中的引用数据类型
    对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性
    使用typeof检查一个对象时,会返回object

    对象的分类:

    1.内建对象
    - 由ES标准中定义的对象,在任何的ES的实现中都可以使用
    - 比如:Math String Number Boolean Function Object….

    2.宿主对象
    - 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
    - 比如 BOM DOM(浏览器对象模型、文档对象模型)

    3.自定义对象

    - 由开发人员自己创建的对象

    方式一:

    1
    var obj = new Object();

    方式二:

    1
    var obj = {};

    向对象中添加属性

    语法:
    对象.属性名 = 属性值;
    对象["属性名"] = 属性值;   //这种方式能够使用特殊的属性名

    对象的属性名没有任何要求,不需要遵守标识符的规范,但是在开发中,尽量按照标识符的要求去写。
    属性值也可以任意的数据类型。

    读取对象中的属性

    语法:
    对象.属性名
    对象[“属性名”] //“属性名”带引号即为在对象中寻找具有该属性名的属性,不带引号是变量,寻找变量值为该属性名的属性。
    如果读取一个对象中没有的属性,它不会报错,而是返回一个undefined。

    删除对象中的属性

    语法:

    1
    2
    delete 对象.属性名  
    delete 对象["属性名"]

    检查属性

    使用in检查对象中是否含有指定属性
    语法:属性名 in 对象
    如果在对象中含有该属性,则返回true
    如果没有则返回false​

    使用对象字面量,在创建对象时直接向对象中添加属性

    语法:

    1
    2
    3
    4
    5
    6
    var obj = {  
    属性名:属性值,
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
    };

    (记住最后一个名值对不加逗号)

    基本数据类型和引用数据类型内存中的区别

    基本数据类型
    String Number Boolean Null Undefined
    引用数据类型
    Object

    基本数据类型的数据,变量是直接保存的它的值在栈内存中。
    变量与变量之间是互相独立的,修改一个变量不会影响其他的变量。

    引用数据类型的数据,变量是保存的对象的引用(内存地址)在栈内存中,而对象会在创建时在堆内存中开辟一段空间,将对象放入其中。
    如果多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其他的变量。
    比较两个变量时,对于基本数据类型,比较的就是值,
    对于引用数据类型比较的是地址,地址相同才相同。

    枚举对象中的属性(使用for...in语句)

    1
    2
    3
    4
    5
    var obj = {'0':'a','1':'b','2':'c'};  

    for(var i in obj) {
    console.log(i,":",obj[i]);
    };

    函数(Function)

    函数也是一个对象,函数对象,也具有普通对象的功能(能有属性)。函数对象是一个有功能的对象。
    函数中可以封装一些代码,在需要的时候可以去调用函数来执行这些代码。
    使用typeof检查一个函数时会返回function。

    创建函数

    可以使用构造函数去创建函数,但是这种方法一般不采用。


    函数声明

    1
    2
    3
    function 函数名([形参1,形参2...形参N]){  
    语句...
    }

    函数表达式

    1
    2
    3
    var 函数名 = function([形参1,形参2...形参N]){  
    语句...
    };

    函数表达式,实质上就是创建一个匿名函数,然后将其赋值给一个变量。

    调用函数

    语法:函数对象([实参1,实参2…实参N]);
    fun() sum() alert() Number() parseInt()
    当我们调用函数时,函数中封装的代码会按照编写的顺序执行。

    形参和实参
    形参:形式参数
    定义函数时,可以在()中定义一个或多个形参,形参之间使用,隔开
    定义形参就相当于在函数内声明了对应的变量但是并不赋值,
    形参会在调用时才赋值。

    实参:实际参数
    调用函数时,可以在()传递实参,传递的实参会赋值给对应的形参,
    调用函数时JS解析器不会检查实参的类型(需要检查是否符合类型)和个数(多余不会被赋值,少的话未对应的形参值是undefined),可以传递任意数据类型的值。

    返回值 (函数执行的结果)

    使用return 来设置函数的返回值。
    语法:return 值;
    该值就会成为函数的返回值,可以通过一个变量来接收返回值。
    return后边的代码都不会执行,一旦执行到return语句时,函数将会立刻退出。
    return后可以跟任意类型的值,可以是基本数据类型,也可以是一个对象。
    如果return后不跟值,或者是不写return则函数默认返回undefined。

    调用函数和函数对象

    mianji() ,这是一个调用函数,相当于使用了返回值。

    mianji,这是一个函数对象,相当于使用函数对象。

    立即执行函数

    函数定义完,立即被调用,这种函数叫做立即执行函数。
    立即执行函数往往只会执行一次。

    1
    2
    3
    4
    (function(a,b){  
    console.log("a = "+a);
    console.log("b = "+b);
    })(123,456);

    方法(method)

    可以将一个函数设置为一个对象的属性,
    当一个对象的属性是一个函数时,
    我们称这个函数是该对象的方法。
    对象.方法名();

    回调函数

    见数组forEach方法中。
     

    学识浅薄,如有错误,恳请斧正,在下不胜感激。

  • 相关阅读:
    对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)
    Charles-安装和配置
    python算法-队列
    python算法-快速排序
    【Codeforces】383.DIV2
    static关键字
    UNIX环境高级编程--5
    【LeetCode】467. Unique Substrings in Wraparound String
    typedef关键字
    strcpy 和 memcpy自实现
  • 原文地址:https://www.cnblogs.com/yin-jie/p/14614355.html
Copyright © 2020-2023  润新知