JS 总结

1.JS概念

  • JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境。
    如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用最广泛的浏览器语言。

  • 运行JavaScript有多种方式,可以直接在浏览器的控制台编写运行;也可以编写一个独立的js文件,然后在Html文件中引入,(这两种方法由浏览器解释执行,是以前唯一的方式)。也可以用编辑软件如Webstrom或VSCode编写独立的js文件,由安装好的Node.js解释执行运行( node-v10.11.0-64位下载)。

2.基本语法

  • JS的脚本代码必须位于标签之间,而这整体可以放置在整个HTML页面的和部分;也可以位于外部的JS文件中,再在HTML页面中进行引入;
  • JS的标识符按以下规则组合:第一个字符只能为字母、_$之一,其他字符可以是字母、_$、数字,一般书写方式采用驼峰大小写格式;
  • Js对大小写敏感,例如:A和a有着不同的含义;

3.变量

我们可以使用 var、let 或 const 声明变量来存储数据。

  • let — 现代的变量声明方式。

  • var — 老旧的变量声明方式。一般情况下,我们不会再使用它。但是,我们会在 旧时的 “var” 章节介绍 var 和 let 的微妙差别,以防你需要它们。

  • const — 类似于 let,但是变量的值无法被修改。

变量应当以一种容易理解变量内部是什么的方式进行命名。

4.操作符

  • 一元操作符 ++ –

  • 布尔操作符 && || !

除下列值为假外其余皆为真: false、null、undefined、‘’、0、NaN

&&和||属于 短路操作

  • 算术操作符 + - * / %

  • 关系操作符 <> <=>= == === != !==

注意: ===称为全等(值和类型)。

  • 条件(问号)操作符 ? :

  • 赋值操作符 = += -+ *= /= %=

5.函数

函数是一个程序被调用执行时的可重复使用的代码块,可以装任意多的语句,大致格式如下:

 function functionname()
 {
    //代码块
 }

此处的function只能小写,并且调用时要注意函数名的大小写

  • 在调用函数时,可以传递参数,用,隔开;
  • 赋值给未声明的变量,则变量会自动作为window的属性;
  • 若定义了两个名字一样函数,则名字属于后定义的函数;

6.对象

对象 Object 是ECMAScript 中使用最多的一个类型。我们常将数据和方法封装在对象中。
创建对象有如下两种方式:

方式一:new

var person = new Object();//生成空对象
person.name = 'Elon Musk';//设置对象的属性
person.age = 46;
person.job = 'SpaceX Rocket';
person.sayName = function(){    //设置对象的方法/函数,注意此处
  console.log(this.name);
};

方式二:字面量

var person = {
  name: 'Lary Page',
  age: 47,
  job: 'Software Engineer',
  sayName: function(){        //注意此处
      console.log(this.name);
  }
};
console.log(person.job);
person.sayName();

7.数组

数组是一种特殊的对象,适用于存储和管理有序的数据项。

  • 声明:

    方括号 (常见用法) let arr = [item1, item2…];

    new Array (极其少见) let arr = new Array(item1, item2…);

    调用 new Array(number) 会创建一个给定长度的数组,但不含有任何项。

    length 属性是数组的长度,准确地说,它是数组最后一个数字索引值加一。它由数组方法自动调整。

    如果我们手动缩短 length,那么数组就会被截断。

  • 遍历数组的元素:

    for (let i=0; i<arr.length; i++) — 运行得最快,可兼容旧版本浏览器。

    for (let item of arr) — 现代语法,只能访问 items。

  • 数组的创建:
    直接new一个新数组

  var objectname = new Object();

直接创建包含几个字符串的数组

var objectname = {
//属性和方法;
}
  • 方法:
  1. 元素联合
var colors = ['red', 'green', 'blue'];
console.log(colors.join(',')); //red,green,blue
console.log(colors.join('||')); //red||green||blue
  1. 堆栈方法(后进先出)
var student = [];
var count = student.push('red');//末尾推入
 console.log(count);
student.push('yellow');
var item = student.pop();//末尾弹出
console.log(item);
  1. 队列方法 (先进先出)
   var arrayname = [];
   arrayname.push('data1','data2');//末尾添加
   var item = arrayname.shift();//前端弹出
   console.log(item);//'data1'
  1. 反转数组项
var values = [1, 2, 3, 4, 5];
values.reverse();
console.log(values); //5,4,3,2,1
  1. 链接方法
var colors1 = ['red', 'green', 'blue'];
var colors2 = ['yellow', 'black'];
console.log(colors1.concat(colors2));
console.log(colors2.concat(colors1));
console.log(colors2.concat('brown'));
console.log(color2)//注意:concat返回一个新数组,原数组没改变
  1. 分片方法 此方法不会影响原始数组

slice() ,它能够基于当前数组中的一或多个项创建一个新数组。 slice() 方法可以接受一或两个参数,即要返回项的起始和结束位置。

 var arrayname = ['data1','data2','data3','data4','data5'];
 var arrayname1 = arratname.slice(2,4);
 console.log(arrayname1);//data3,data4

8.语句

  • if…else语句
if (condition)//使用小写的if
{
   //当条件为true时执行的代码
}
else
{
   //当条件不为true时执行的代码
}
  • switch语句
switch(n)
{
     case 1 :
          //执行代码块1
          break;//阻止代码自动向下一个case执行
     case 2 :
          //执行代码块2
          break;  
     default:
         //匹配不存在时做的事情
}
  • for循环
for (代码块开始前执行的语句;循环的条件;代码块执行后的执行语句)
{
 //代码块
}
  • while循环
 while(条件)
 {
   //代码块
 }
  • break和continue语句
    break用于跳出循环;
    continue中断当前的循环中的迭代,然后继续循环下一个迭代;

9.闭包

闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在。

闭包就是就是函数的“堆栈”在函数返回后并不释放,我们也可以理解为这些函数堆栈并不在栈上分配而是在堆上分配。

当在一个函数内定义另外一个函数就会产生闭包。

例如:

function greeting(name) {
    var text = 'Hello ' + name; // local variable
    // 每次调用时,产生闭包,并返回内部函数对象给调用者
    return function() { console.log(text); }//注意该函数无名称,称为匿名函数
}
var sayHello = greeting('Closure');//调用greeting()返回了什么?
sayHello();  // 注意此处的使用方法。通过闭包访问到了局部变量text

上述代码的执行结果是:Hello Closure,因为sayHello指向了greeting函数对象,sayHello()则对其进行调用,greeting函数执行完毕后将返回greeting函数内定义的匿名函数对象,而该匿名函数仍然可以访问到了定义在greeting之内的局部变量text,注意此时我们已从greeting函数中退出了(但请留意,也只有该内部匿名函数能访问,其它任何代码都不能访问)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值