java script console_Java Script 基础三

五、对象 Object

1、JavaScript 中的对象可以简单的理解成"名称-值"对,与其类似的类型

Python 中的字典(Dictionary)

Perl 和 Ruby 中的散列/哈希(Hash)

C/C++ 中的散列表(Hash table)

Java 中的散列映射表(HashMap)

PHP 中的关联数组(Associative array)

“名称”部分是一个 JavaScript 字符串,“值”部分可以是任何 JavaScript 的数据类型——包括对象。

// 创建对象的两种方式

var obj = new Object();

var obj = {}; // 对象字面量法

2、对象的链式取值

obj.first.second;

obj["first"]["second"];

这两种方法在语义上也是相同的。

第二种方法的优点在于属性的名称被看作一个字符串,这样的话,可以在[]中添加变量来进行取值。它也可以被用来访问某些以预留关键字作为名称的属性的值。

六、数组

常用的api

arr.toStirng()                                       返回一个字符串,包含数组中所有元素,逗号分割

arr.toLocalString()                               根据宿主环境的区域设置,返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。

arr.concat(item1[, item2[, ... [, itemN]]])  返回一个新的数组,包含arr和item中的所有元素

arr.join(sep)                                        返回一个包含数组中所有元素的字符串,每个元素通过指定的 sep 符号分隔。

arr.pop()                                             删除并返回数组中最后一个元素, 会影响到原数组

arr.push(item1, ..., item)                        将item1、item2....、itemN 追加到数组 arr 中, 会影响到原数组

arr.reverse()                                        数组逆序, 逆序数组中的每一个元素,元素内容不会改变,会影响原数组

arr.shift()                                            删除并返回数组第一个元素,会影响原数组

arr.slice()                                            返回子数组,以 a[start] 开头,以 a[end] 前一个元素结尾。

arr.sort([cmpfn])                                  对数组进行排序,默认顺序是字符顺序。compfn是一个function(a, b),用来自定义排序。会影响原数组

a.splice(start, delcount[, item1[, ...[, itemN]]])    从 start 开始,删除 delcount 个元素,然后插入所有的 item。返回值是被删除的数组,该API会影响原数组

a.unshift(item1[, item2[, ...[, itemN]]])      将 item 插入数组头部,返回数组新长度(考虑 undefined)

七、函数

1、函数的定义

* 用 function 定义函数

函数可以通过声明定义,也可以是一个表达式

// 函数声明

function sum(a, b) {

return a+b;

}

sum(1,2) // 3

//函数表达式

var sum = function(a, b) {

return a+b;

}

sum(1,4) // 5

* 用 Function 构造函数定义

var myFun = new Function("a", "b", "c", "return (a+b)*c")

myFun(1,2,3); // 9

2、函数的调用

函数的调用方式主要这么4种:

1、作为一个函数调用

2、作为一个对象的方法进行调用

3、使用构造函数进行调用

4、使用函数方法进行调用 ( apply()、call() )

// 1、作为一个函数调用

function sum() {

let a = arguments[0]

let b = arguments[1]

return a+b;

}

sum(1,6) // 7

// 2、作为一个对象的方法进行调用

var myObj = {

firstName:"Hunter",

lastName: "Liu",

fullName: function () {

return this.firstName + " " + this.lastName;

}

}

myObj.fullName() // Hunter Liu

// 3、使用构造函数进行调用

function fullNameF(arg1, arg2) {

this.firstName = arg1;

this.lastName = arg2;

}

// This creates a new object

var x = new fullNameF("Hunter","Liu");

x.firstName; // HUnter

// 4、使用函数方法进行调用 ( apply()、call() )

function myFunction(a, b) {

return a * b;

}

myObject = myFunction.call(myObject, 10, 2); // 20

myObject = myFunction.apply(myObject,[10, 2]); // 20

apply() 和 call() 的

共同点:是第一个参数都是对象本身,因为需要获取第一个参数的作用域,也就是让第一个参数作为函数调用方法的 this

不同点:apply() 的第二个参数是一个数组,也就是将被调用函数的所有的参数都放在这个数组中,传入函数。

call() 的参数则是依次填入的,从第二个参数开始就是被调用函数的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值