第二天JavaScript基础学习

65 阅读2分钟

JavaScript基础学习

代码注释

//单行注释
/*
多行注释
*/

声明变量

undefined(未定义)null(空)boolean(布尔型)string(字符串)
symbol(符号) number(数字)object(对象)
通过var来声明
当声明变量未赋值时或者定义属性未设置值时,默认值都为undefined此时无法进型运算
变量命名时使用驼峰命名法比较规范

变量赋值

赋值过程是从右到左的,先解析右侧内容 用=
在声明时可以给变量一个指定的初始值var x = 0;

运算

加减乘除 + - * / 
自增 i++(后自增) ++i(先自增再操作)
自减 i--  --i
求余 %
赋值运算符+= -= *= /=

向浏览器写入内容

document.write()
后写的document.write会覆盖之前的

字符串

如果要打印出“” 要在”“前添加\
转义序列 \n换行符 \r回车符 \t 制表符 \b退格 \f换页符 对反斜杠本身进行转义才能显示反斜杠
使用+号连接字符串
通过.length获取字符串长度
通过[index]获取index处的字符 通过[x.length -1]获取最后一位
字符串一旦声明不可更改某个字符,只能重新声明来修改

数组

var a =["a","b","c"]
var a =[["a",1],["b",2]]多维数组
通过索引[]访问数组数据或者修改数据
多层索引从外到内一层一层写
通过push()可以向数组最后一位添加数据
通过pop()删除并返回数组的最后一个元素
通过shift()删除并返回数组的第一个元素
通过unshift()向数组的第一位添加数据

函数

function functionName(参数1,参数2){
//执行内容
}
函数的作用域 不使用var声明默认为全局 在函数外也为全局
在函数内使用var声明为局部变量
若出现局部变量和全局变量同名,局部优先
返回值 通过return把数据从一个函数中取出来

队列

先进先出,后进后出
shift() push() 来实现

语句

判断if(boolean类型){
}else{
}
相等 ==
严格相等运算符 ===(会比较值和数据类型)
不等 !=
严格不等 !==
大于运算符 >  大于等于>= 小于 < 小于等于 <=
逻辑运算符 且 && 或 ||
else语句 else if语句(存在多个if时)
switch语句(必须加break) default设置默认值
可以给多条case添加同一个break
可以通过函数返回布尔值 return a < b
return语句 当执行return后 后面的语句就不会再执行了

JS对象

对象通过属性进行访问和修改数据
访问属性可以通过. 或者[]来访问(属性名称中含有中括号的必须使用单双引号)
通过. 或者[]来修改和添加属性值
通过delete删除对象的属性
可以将switch语句转换成对象
hasOwnProperty(a)可以判断对象中是否含有a属性
json用于操作更复杂的对象
访问嵌套对象时可以通过. 和[]一起来使用

循环

while()循环
for([初始化]; [条件判断]; [计数器])循环
正向 反向 数组 循环嵌套
do while循环(先执行do中内容,若whiletrue则继续执行)

随机数

生成0-1之间的随机数 Math.random()
生成0-10之间的随机整数 Math.floor(Math.random()*10)
生成0-20之间的随机整数 Math.floor(Math.random()*20)
生成指定范围的随机数 Math.floor(Math.random() * (max - min + 1)) + min

parseInt()函数

解析一个字符串返回一个整数 只有第一个数字会被返回
parseInt(string,radix)当radix为0或者不设置时会依据字符串的开头判断 如果radix小于2或者大于32会返回NaN
例如:parseInt(str,2) 将二进制转化为10进制

三元运算符

表达式1 ?表达式2:表达式3
多个三元 (a === b) ? "a and b are equal" : (a > b) ? "a is greater" : "b is greater"
不推荐使用多个三元运算符 代码可读性太低

递归

例子:function rangeOfNumbers(startNum, endNum) {
if (endNum - startNum === 0) {
    return [startNum];
  } else {
    var numbers = rangeOfNumbers(startNum, endNum - 1);
    numbers.push(endNum);
    return numbers;
  }  
}