构成:

  1.核心 ECMAScript

  2.文档对象模型 DOM

  3.浏览器对象模型 BOM

基础语法:

  1.单行注释 //

  2.多行注释 /*

      */

  3.语句必须以;结束

  4.变量声明关键字 var 变量名 = "值";

    js属于动态类型(同一个变量可以存不同数据类型)

  5.变量命名规则

    $可以做变量名,其余和python一样

    区分大小写

    推荐用驼峰命名 userName

 

数字类型 number:

  不区分整形浮点型

  var n4 = NaN  // 表示不是数字类型

字符串 string:

  可以用+拼接

  .length

  .trim()  // 移除空白

  .trimLeft()

  .trimRight()

  .charAt(n)  // 返回第n个字符

  .concat(value)  // 拼接

  .indexOf(substring,start)  // 子序列位置

  .toLowerCase()

  .toUpperCase()

  .split(delimiter,limit)  // limit控制返回序列长度

 

  .substring(start,stop)  // 根据索引获取子序列

  ,slice(start,stop)  // 切片

    相同点:

      如果start = stop,返回空字符串

    substring():

      如果start>srop,二者会被交换

      如果参数是负数或不是数字,会被替换为0

    slice():

      如果start>stop,不会交换

      如果是复数,则从末尾往前数

 

布尔类型 boolean:

  var a = true  // 小写,区别python

  var b = false

  "" , 0 , null , undefined , NaN 都是false

 

数组 :  // 类型是object对象

  类似python列表

  var a = [123,"ABC"]

  a[0]  // 索引取值

  .length

  .push()  // append

  .pop()

  .unshift()  // 头部插入

  .shift()  // 头部弹出

  .slice(start,end)  // 左包含右不包含

  .reverse()

  .join(seq)  // a.join("+")  和python反过来

  .concat()  // 连接数组

  .sort()  // 按照首字符大小排序

    function sortNumber(a,b){

      return a-b

    }

    a2.sort(sortNumber)  // 自行实现真排序

  遍历数组元素:

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

      console.log(a1[i])

    }

 

null和undefined

  值为空 / 值声明了但还未赋值

 

查询类型 typeof  // 不用加括号

  null和数组的类型是object

  null == undefined  // true

  null === undefined  // false

 

算数运算符:

  + - *  /  %  ++  --  // n++ 就是 py里的n +=1

比较运算符:

  >  >=  <  <=  !=  ==(弱等于)  ===(强等于)  !==

    10 != "10"  // true

    10 !== "10"  // false

逻辑运算符:

  &&  ||  !  // 与 或 非

赋值运算符:

  =  +=  -=  *=  /=

  n += 3  // n = n+3

 

流程控制:

if - else:

var a = 10;
if (a > 5){
  console.log("yes");
}else {
  console.log("no");
}

if-elif-else:

var a = 10;
if (a > 5){
  console.log("a > 5");
}else if (a < 5) {
  console.log("a < 5");
}else {
  console.log("a = 5");
}

switch:

var day = new Date().getDay();
switch (day) {
  case 0:
  console.log("Sunday");
  break;
  case 1:
  console.log("Monday");
  break;
default:
  console.log("...")
}

case子句通常都会加break语句,否则程序会继续执行后续case中的语句

 

for 循环:

  for (var i ; i < 10; i++) {

    console.log(i);

  }

 

while循环:

  var i = 10;

  while (i<10) {

    console.log(i);

    i++;

  }

 

三元运算:

  var a = 1;

  var b = 2;

   var c = a > b ? a : b;