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
posted @ 2022-04-28 18:53  Yume_Minami  阅读(72)  评论(0编辑  收藏  举报