js 函数 php,js基础、函数

变量

声明:let 变量名

声明时并且初始化

let a=1;

更新

a=2;

常量 const

声明时必须初始化,且不能更新

变量标识符

1、字母,数字,下划线,$(不能使用数字开头)

2、严格区分大小写

3、不能使用关键字保留字

命名方案

1、驼峰式

2、帕斯卡(大驼峰) 首字母大写

3、匈牙利 oBtn,_sex,_salary

推荐使用驼峰式;

常量推荐大写命名;

变量的类型与类型转换

原始类型

1、字符串

535623aab52848322daba5db6ab949e0.png

let a='a';

console.log(a,typeof a);

2、数值

843c795a47d47a39d0413030ac534d7e.png

let b=1;

console.log(b,typeof b);

3、布尔

227ee18ac975c8ecbb30bd6fcc33baa4.png

let c=false;

console.log(c,typeof c);

4、underfined

58f42d9331f92022cc4dd8451fb01b19.png

let d;

console.log(d,typeof d);

5、null

fb57186a48b8052a91950542a69635af.png

let e=null;

console.log(e,typeof e);

引用类型:数组,对象,函数

1、数组 []

e69e12af8c822b6d80c7afe40ab054d6.png

let arr = [1, 2, 3];

console.log(arr, Array.isArray(arr));

判断数组 Array.isArray(arr);

2、对象

ec202f59cdcbf57265cc4146e04f126f.png

let objs = {

id: 1,

name: '手机',

price: 9999

}

console.log(objs, objs instanceof Object);

判断对象 objs instanceof Object;

3、函数

声明函数

function 名(){}

建议命名方式 动词+名称 比如getName

9d9c590180e2138ffa0947d610eea094.png

function show() {};

console.log(typeof show);

函数是特定的对象实例。

判断函数 typeof ;返回function;

运算符

通常只有相同类型的数组放在一起运算,它的结果才有意义!

+:字符串之间表示连接,此时触发自动类型转换(隐式转换)

30e87f40f8792333911645b88903258a.png

console.log(100 + '100');

==:非严格匹配,只检查值不检查类型

4e51e08cd5725ccc461c5424afd410ec.png

console.log(100 == '100');

===:严格匹配,必须值与类型都匹配时才为true;

console.log(100 === '100');

daeba63d4960f64addbae81f237f5a61.png

函数提升

声明的函数不管写在任何地方,声明自动提升到最高。

使用匿名函数、函数表达式可以禁止函数提升

函数重写

函数可以被重写,只要将函数作为值赋给常量可以禁止重写

函数的参数和返回值

函数参数多的时候,可以使用归内参数,简化函数的参数声明let sum = function(...arg) {

console.log(arg);

}

sum(1, 2, 3, 4, 5, 6, 7, 8)

16850f2830166cdc2e6f664ac86dc1cb.png

函数都是单值返回,如果想要返回多个值,将结果封装到数据或者对象中

高阶函数

1、回调函数

将函数作为另一个函数的参数

2、偏函数

简化声明

let summ = function(a, b) {

return function(c, d) {

return a + b + c + d;

}

}

let f1 = summ(1, 2);

console.log(f1(3, 4));

14e2fe96c33361cc117a194bb9f4b78b.png

3、柯里化

简化调用

let summ = function(a) {

return function(b) {

return function(c) {

return function(d) {

return a + b + c + d;

}

}

}

}

let res = summ(1)(2)(3)(4);

console.log(res);

4、纯函数

完全独立于调用上下文,返回值只能受到传入的参数影响

5、箭头函数

sum =(a,b)=>{

return a+b;

}

使用在匿名函数中

如果函数体只有一条语句,可以不写return

sum =(a,b)=> a+b;

如果只有一个参数,可以更简化

let getName = name => name;

console.log(getName('abc'));

b477a03260f562e5b83e4a936ba1ca79.png

如果没有参数,小括号不能省略

let str = () => console.log('abc');

str()

d6c34031689001348c5e8cc2f75fb90a.png

箭头函数没有原型属性,不能当构造函数使用

箭头函数中的this始终与它的上下文绑定

作用域与闭包

js中有三种作用域

1、全局作用域

声明在函数之外的

2、函数

声明在函数里面的,函数里面的变量叫做局部变量

3、块

{

声明在大括号内部的

}

4、闭包

自由变量:既不是参数变量又不是私有变量,存在于函数调用上下文中变量;

闭包:能够访问自由变量的函数,理论上上讲任何函数都是闭包;

// 使用闭包访问私有变量

function fun() {

let n = 100;

return function() {

return n;

}

}

console.log(fun()());

ee236279dc6e9cf552164f7ad4135246.png

立即执行函数IIFE

声明完成直接调用

(function(a,b){})(a,b)

可以模拟块作用域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值