JS函数与对象
函数
JS中function关键字用于定义函数。
无参函数
function f1() {
console.log("Hello world!");
}
//调用函数
f1() // Hello world!
有参函数
有参函数在调用函数时,参数传少了没传的参数会以undefined传入;参数传多了,只取需要的部分。
function f1(a, b) {
console.log(a, b);
}
f1() // undefined undefined
f1(1) // 1 undefined
f1(1, 2) // 1 2
f1(1, 2, 3) // 1 2
带返回值的函数
return用于设置函数的返回值,不支持返回多个数据。
function sum(a, b){
return a + b;
}
// 将函数返回值赋值给变量
var a = sum(1, 2); // 3
匿名函数
function后不跟上函数名,而是直接写参数。
var f1 = function(a, b){
console.log(a, b)
}
f1(1, 2) // 1 2
箭头函数
语法:
变量名 = (需要的参数) => 返回值
例子:
var a = (a, b) => a + b;
a(1, 2); // 3
// 等同于
var a = function(a, b){
return a + b;
}
a(1, 2); // 3
arguments
JS中的函数提供了有个内置关键字arguments用于接收所有参数(无论传了几个都会接收)。
var f1 = function(a, b){
console.log(arguments) // 接收调用函数时传入的所有参数
console.log(arguments[0]) // 取第一个传入的参数
}
自定义对象
自定义对象,使用大括号定义,里面的元素都以键值对(键:值)的形式存储。
比如:
var d1 = {'name':'tom','age':18}
// 取值,通过键取值
d1.name // tom
d1.age // 18
d1['name'] // tom
d1['age'] // 18
// 循环取值
for(var i in d1) {
console.log(i)
console.log(d1[i])
}
/*
结果:
name
tom
age
18
*/
定义自定义对象还有一种标准格式。
var d1 = new Object() // 相当于生成了空对象
// 添加值
d1.name = 'tom'
// 或者
d1['name'] = 'tom'
Date对象
date对象可以获取各种时间信息。
创建Date对象。
var d1 = new Date()
方法 | 描述 |
---|---|
getFullYear() | 获取完整年份 |
getMonth() | 获取月(0-11) |
getDate() | 获取日 |
getDay() | 获取星期 |
getHours() | 获取小时 |
getMinutes () | 获取分钟 |
getSeconds () | 获取秒 |
getMilliseconds() | 获取毫秒 |
getTime() | 获取时间戳(从1970/1/1距离现在的毫秒数) |
toLocaleString() | 获取"年/月/日 时:分:秒" |
toLocaleDateString() | 获取"年/月/日" |
toLocaleTimeString() | 获取"时:分:秒" |
JSON对象
// JSON字符串转换成对象
var str = '{"name": "Alex", "age": 18}';
var obj = JSON.parse(str);
// 对象转换成JSON字符串
var obj = {"name": "Alex", "age": 18};
var str = JSON.stringify(obj);
正则对象
创建正则对象有2种方式。
var reg1 = new RegExp("^[a-z].*[0-9]$");
// 推荐使用(简化)
var reg2 = /^[a-z].*[0-9]$/;
使用正则
reg2.test('a1') // true
// 什么都不写就传入undefined判断
reg2.test() // false
还可以使用全局匹配:每次匹配成功,会将起始位置移到字符结束位置,下次就从起始位置开始匹配;如果匹配不到,则把起始位置重新设为0;
var reg = /abc/g;
reg.test('abc') // true
// lastIndex 属性用于规定下次匹配的起始位置
reg.lastIndex // 3
reg.test('aaaabc') // true
reg.lastIndex // 6
reg.test('abc') // false
reg.lastIndex // 0