8-28 钟诚 js 函数API

1.arguments是函数自带的 不用定义 可以接受所有传入函数内部的参数

​ function show(a,b){

​ console.log(arguments)

​ }

​ show(2,4)

​ 练习:使用arguments 根据传入的函数参数长度,判断到底有多少个女朋友

​ function girl(name){

​ switch(arguments.length){

​ case 1:console.log("XX有1个女朋友");break;

​ case 2:console.log("XX有2个女朋友");break;

​ case 3:console.log("XX有3个女朋友");break;

​ case 4:console.log("XX有4个女朋友");break;

​ case 5:console.log("XX有5个女朋友");break;

​ default:console.log("数不清")

​ }

​ }

​ girl("约好天","张林","1","老烟囱")

​ 2.数组

单纯使用变量只有一个值,通过数组可以将多个变量保存到数组中,使用的时候直接调用数组

下标:数组中的每个元素 用下标进行标识 从0开始从左向右

方法 arr.length *//获取长度 数组长度-1就是最后一位的下标*

对象:object

​ var obj={

​ name:"一颗",

​ sex:"男",

​ age:"22",

​ }

​ 对象使用一对双花括号,里面就是我们要保存的数据,每个数组都有自己的名字

3.引用类型

​ var obj1={

​ name:'liming',

​ sex:'man'

​ }

​ var obj2=obj1;

​ obj2.name='lidaming';

​ console.log(obj1.name) //lidaming

​ 练习 使用原始数据类型,修改变量的值(string,number。。。。)

​ var a="c";

​ var b=a;

​ b=2;

​ console.log(b)

​ var arr=[1,2,3]

​ arr[1]=4;

​ console.log(arr)

​ var fn2=fn1()

​ console.log(fn2)

//闭包 三概念

​ var add = (function () {

​ var counter = 0;

​ return function () { return counter += 1; }

​ })();

​ console.log(add()); // counter=1;

​ console.log(add()); // counter=2;

​ console.log(add()); // counter=3;

执行了3次。第一次以后,内层作用域里的变量得不到释放,执行的时候,一直就在这个作用域下发挥作用,同时,因为内部,闭包的函数得不到释放,所以一直牵引着外层函数也得不到释放。

return 返回到当前所在作用域内的值

​ console.log(add())

​ console.log(add())

​ var ads=add();

​ console.log(ads)

​ console.log(ads)

​ console.log(ads)

​ ads=null;

​ console.log(ads)

​ var ads=add();

// 只保存第一次执行的结果

​ console.log(ads)

​ console.log(ads)

​ console.log(ads)

使用对象字面量创建对象

创建对象

​ var obj = {

​ name: "liLeilei",

​ sex: "男",

​ age: 20

​ }

使用内置构造函数创建对象

创建空对象

​ var obj = new Object()

// 添加属性

​ obj.name = "lileilei";

​ obj.sex = "男";

自定义构造函数创建对象

​ function Person(name,sex){

this.name=name;

this.sex=sex;

​ }

​ var Person1=new Person('权哥','男')

​ console.log(Person1)

​ var Person2=new Person('陈哥','无性别')

​ console.log(Person2)

​ var object = {

​ name:"keke",

​ sex:"nan",

​ }

打点调用

​ \1. console.log(object.name)

​ 2.console.log(object["name"])

5.遍历 for in

for (var key in 对象){

//key代表对象中的每一个属性;

//对象[key]获取每个属性的值

}

​ var obj ={

​ name:"陈哥",

​ height:"180",

​ weight:"90",

​ study:"博士后",

​ say(){

​ console.log(${*this*.name}身高${*this*.height}体重${*this*.weight}斤,学历${*this*.study})

​ }

​ }

​ obj.say();

​ for(var key in obj){

// console.log(key)

​ console.log(obj[key])

​ }

//1.Math对象

//取整

​ console.log(Math.ceil(2.111111111)) //向上取整3

​ console.log(Math.floor(2.111111)) //向下取整 2

​ console.log(Math.round(4.4444444)) //四舍五入取整4

//乘方

​ console.log(Math.pow(2,2)) // 4

​ console.log(2**2) // 4

//开平方

​ console.log(Math.sqrt(8)) // 3

//最大值和最小值

​ console.log(Math.max(1,4,6,23,63,72,24,6,43,51)) //输出最大值

​ console.log(Math.min(412,52,51,123,32,7,646,36)) // 输出最小值

//问题:不支持查找一个数组中的最大值/最小值持

//解决方案**

​ var arr=[1,4,5,2,7,4,8,9]

​ console.log(Math.max.apply(null.arr))

//随机数

​ console.log(Math.round()) //0-1随机 取不到1

​ Math.floor(Math.random()*9+1) //随机1-10

//圆周率

​ console.log(Math.PI)

//绝对值

​ console.log(Math.abs(-100)) // 输出100

//new Boolean

​ console.log(new Boolean("一颗"))

//Boolean

​ console.log(Boolean(""))

​ number

​ console.log(new Number(true)) //将数据转为数值,返回对象

​ console.log(Number(true)) //将数据转为数值,返回数值

//取小数点的后几位 toFixed(n)

​ var num=1.234567; // 1.235

​ console.log(num.toFixed(3))

获取Date对象中的日期时间

​ getFullYear()

​ getMonth()

​ getDate()

​ getHours()

​ getMinutes()

​ getSeconds()

​ getMilliseconds()

​ getDay()

​ getTime()

函数构造

var 函数名=new Function("参数名1","参数名2",...,"函数体;return 返回值")

​ var fn=new Function("name","sex","console.log(name.sex)")

​ fn("陈哥","女")

开发禁止使用,但是面试可能会考

​ (function() {

​ var a = b = 3;

​ })();

​ console.log("b defined? " + (typeof b !== 'undefined'));

​ console.log("a defined? " + (typeof a !== 'undefined'));

​ var arr=new Array()

​ arr[6] = '开学快乐';

​ console.log(arr)

​ console.log(arr.length)

//数组翻转

​ var arr=[1,2,3,4,5]

​ arr.reverse()

​ console.log(arr)

字符串翻转 也就是倒序

​ function reverseString(str) {

​ var str2 = "";

​ for (var i = 0; i < str.length; i++) {

​ str2 += str.charAt(str.length - i - 1);

​ }

​ console.log(str2)

​ return str2;

​ }

​ reverseString("abcdef");

​ function reverseString(str) {

​ var str2 = "";

​ for (var i = str.length-1; 0<= i; i--) {

​ str2 += str.charAt(i);

​ }

​ console.log(str2)

​ return str2;

​ }

​ reverseString("abcdef");

评论