02. js 函数与对象

js 函数与对象

1. 函数

show code
// 格式
function 函数名(形参1,形参2,形参3...){函数体代码}

// 无参函数
function func1(){
  console.log('hello world')
}
func1()  // 调用 加括调用 跟python是一样的

// 有参函数
function func2(a,b){
  console.log(a,b)
}
func2(1,2)

func2(1,2,3,4,5,6,7,8,9)  // 多了没关系 只要对应的数据
VM3610:2 1 2
undefined

func2(1)  // 少了也没关系
VM3610:2 1 undefined

// 关键字arguments
function func2(a,b){
  console.log(arguments)  // 能够获取到函数接受到的所有的参数
  console.log(a,b)
}

function func2(a,b){
  if(arguments.length<2){
    console.log('传少了')
  }else if (arguments.length>2){
    console.log('传多了')
  }else{
    console.log('正常执行')
  }
}

// 函数的返回值  使用的也是关键字return
function index(){
  return 666,777,888,999
}
res = index();
999
res
999  // 只能拿到最后一个

function index(){
  return [666,777,888,999]
}

// 匿名函数  就是没有名字
function(){
  console.log('哈哈哈')
}
var res = function(){
  console.log('哈哈哈')
}

// 箭头函数(要了解一下)  主要用来处理简单的业务逻辑 类似于python中的匿名函数
var func1 = v => v;  """箭头左边的是形参 右边的是返回值"""
等价于
var func1 = function(v){
  return v
}

var func2 = (arg1,arg2) => arg1+arg2
等价于
var func1 = function(arg1,arg2){
  return arg1+arg2
}

2. 函数的全局变量与局部变量

show code
// 跟python查找变量的顺序一致
var city = "BeiJing";
function f() {
  var city = "ShangHai";
  function inner(){
    var city = "ShenZhen";
    console.log(city);
  }
  inner();
}

f();  //输出结果是?ShenZhen


var city = "BeiJing";
function Bar() {
  console.log(city);
}
function f() {
  var city = "ShangHai";
  return Bar;
}
var ret = f();
ret();  // 打印结果是?BeiJing


var city = "BeiJing";
function f(){
    var city = "ShangHai";
    function inner(){
        console.log(city);
    }
    return inner;
}
var ret = f();
ret();

3. 自定义对象

show code
// 你可以看成是我们python中的字典 但是js中的自定义对象要比python里面的字典操作起来更加的方便

// 创建自定义对象 {}
"""第一种创建自定义对象的方式"""
var d1 = {'name':'jason','age':18}


var d = {'name':'jason','age':18}
typeof d
"object"

d['name']
"jason"
d.name  // 比python从字典获取值更加的方便
"jason"
d.age
18

for(let i in d){
  console.log(i,d[i])
}  // 支持for循环 暴露给外界可以直接获取的也是键


"""第二种创建自定义对象的方式  需要使用关键字 new"""
var d2 = new Object()  # {}

d2.name = 'jason'
{name: "jason"}

d2['age'] = 18
{name: "jason", age: 18}

4. Date对象

show code
let d3 = new Date()
Fri May 15 2020 14:41:06 GMT+0800 (中国标准时间)

d3.toLocaleString()
"2020/5/15 下午2:41:06"

// 也支持自己手动输入时间
let d4 = new Date('2200/11/11 11:11:11')
d4.toLocaleString()

let d5 = new Date(1111,11,11,11,11,11)
d5.toLocaleString()  // 月份从0开始0-11月
"1111/12/11 上午11:11:11"

// 时间对象具体方法
let d6 = new Date();
d6.getDate()		获取日
d6.getDay()		获取星期
d6.getMonth()		获取月份(0-11)
d6.getFullYear()	获取完整的年份
d6.getHours()		获取小时
d6.getMinutes()		获取分钟
d6.getSeconds()		获取秒
d6.getMilliseconds()	获取毫秒
d6.getTime()		时间戳

5. JSON对象

show code
"""
在python中序列化反序列化
	dumps 		序列化
	loads		反序列化

在js中也有序列化反序列化
	JSON.stringify()								dumps
	JSON.parse()									loads
"""
let d7 = {'name':'jason','age':18}
let res666 = JSON.stringify(d7)
"{"name":"jason","age":18}"

JSON.parse(res666)
{name: "jason", age: 18}

6. RegExp对象

注意:有较多漏洞

show code
"""
在python中如果需要使用正则 需要借助于re模块
在js中需要你创建正则对象
"""
// 第一种 有点麻烦
let reg1 = new RegExp('^[a-zA-Z][a-zA-Z0-9]{5,11}')
// 第二种 个人推荐
let reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/

// 匹配内容
reg1.test('wesley')
reg2.test('wesley')

7. Math对象

show code
abs(x)      返回数的绝对值。
exp(x)      返回 e 的指数。
floor(x)    对数进行下舍入。
log(x)      返回数的自然对数(底为e)。
max(x,y)    返回 x 和 y 中的最高值。
min(x,y)    返回 x 和 y 中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    把数四舍五入为最接近的整数。
sin(x)      返回数的正弦。
sqrt(x)     返回数的平方根。
tan(x)      返回角的正切。
posted @ 2021-08-24 14:18  超暖  阅读(35)  评论(0)    收藏  举报