Blogger Information
Blog 45
fans 0
comment 0
visits 34620
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
js基础、函数
咸鱼老爷
Original
523 people have browsed it

变量

声明:let 变量名
声明时并且初始化
let a=1;
更新
a=2;

常量 const

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

变量标识符

1、字母,数字,下划线,$(不能使用数字开头)
2、严格区分大小写
3、不能使用关键字保留字

命名方案

1、驼峰式
2、帕斯卡(大驼峰) 首字母大写
3、匈牙利 oBtn,_sex,_salary
推荐使用驼峰式;
常量推荐大写命名;

变量的类型与类型转换

原始类型

1、字符串

  1. let a='a';
  2. console.log(a,typeof a);

2、数值

  1. let b=1;
  2. console.log(b,typeof b);

3、布尔

  1. let c=false;
  2. console.log(c,typeof c);

4、underfined

  1. let d;
  2. console.log(d,typeof d);

5、null

  1. let e=null;
  2. console.log(e,typeof e);

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

1、数组 []

  1. let arr = [1, 2, 3];
  2. console.log(arr, Array.isArray(arr));

判断数组 Array.isArray(arr);
2、对象

  1. let objs = {
  2. id: 1,
  3. name: '手机',
  4. price: 9999
  5. }
  6. console.log(objs, objs instanceof Object);

判断对象 objs instanceof Object;
3、函数
声明函数
function 名(){}
建议命名方式 动词+名称 比如getName

  1. function show() {};
  2. console.log(typeof show);

函数是特定的对象实例。
判断函数 typeof ;返回function;

运算符

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

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

  1. console.log(100 + '100');

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

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

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

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

函数提升

声明的函数不管写在任何地方,声明自动提升到最高。
使用匿名函数、函数表达式可以禁止函数提升

函数重写

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

函数的参数和返回值

函数参数多的时候,可以使用归内参数,简化函数的参数声明

  1. let sum = function(...arg) {
  2. console.log(arg);
  3. }
  4. sum(1, 2, 3, 4, 5, 6, 7, 8)

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

高阶函数

1、回调函数
将函数作为另一个函数的参数
2、偏函数
简化声明

  1. let summ = function(a, b) {
  2. return function(c, d) {
  3. return a + b + c + d;
  4. }
  5. }
  6. let f1 = summ(1, 2);
  7. console.log(f1(3, 4));


3、柯里化
简化调用

  1. let summ = function(a) {
  2. return function(b) {
  3. return function(c) {
  4. return function(d) {
  5. return a + b + c + d;
  6. }
  7. }
  8. }
  9. }
  10. let res = summ(1)(2)(3)(4);
  11. console.log(res);

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

5、箭头函数

  1. sum =(a,b)=>{
  2. return a+b;
  3. }

使用在匿名函数中
如果函数体只有一条语句,可以不写return

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

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

  1. let getName = name => name;
  2. console.log(getName('abc'));


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

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


箭头函数没有原型属性,不能当构造函数使用
箭头函数中的this始终与它的上下文绑定

作用域与闭包

js中有三种作用域
1、全局作用域
声明在函数之外的
2、函数
声明在函数里面的,函数里面的变量叫做局部变量
3、块
{
声明在大括号内部的
}
4、闭包
自由变量:既不是参数变量又不是私有变量,存在于函数调用上下文中变量;
闭包:能够访问自由变量的函数,理论上上讲任何函数都是闭包;

  1. // 使用闭包访问私有变量
  2. function fun() {
  3. let n = 100;
  4. return function() {
  5. return n;
  6. }
  7. }
  8. console.log(fun()());

立即执行函数IIFE

声明完成直接调用

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

可以模拟块作用域

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post