js基础
js 基本语法
命名规则:
- 1.数字,字母,下划线与$组成
- 2.不能以数字开头
- 3.不能使用关键字
- 4.区分大小写
- 5.使用驼峰式命名法
- 6.见名之意
创建变量:
var 变量名;
var 变量名=初始值;
同时创建多个变量:
var 变量名1=初始值1,变量名2=初始值2;
运算符以及运算表达式
算术运算
+ - * / %
单目运算
num++ 先运算,再自己加1
++num 先加1,再参与运算
num-- 先运算,再自己减1
--num 先减1,再参与运算
三目运算
表达式?值1:值2;
先执行表达式,若表达式成立,则返回值1,若表达式不成立,则返回值2
比较运算
> < >= <= == != === !==
== 与===区别:两个==判断数值是否相等,===判断值与类型是否同时相等
在js中会有一个隐式类型转换,在比较的时候,会尽量转为相等的类型再进行比较
逻辑运算
与运算:&&
或运算:||
非运算:!
(运算法则与python相同,短路原则与python也是相同的)
特殊用法
- 当strting类型与其他类型相加的时候,它会将其他类型转为字符串,然后进行拼接
- 当string类与number类型相减/相除/相乘的时候,先将string转为number再运算,若无法转换则返回NaN
- NaN != NaN
- null == undefined
分支语句
if语句
if(判断条件){
语句块1;
}else{
语句块2
}
多分支结构
if(判断条件1){
语句块1;
}else if(判断条件2){
语句块2;
}..else{
语句块n;
}
switch语句
switch(n){
case value1:
语句块;
break;
case value2:
语句块2;
break;
...
default:
语句块n;
break
}
执行过程:通过n与case后面的值进行匹配。
若匹配的上,就执行被匹配上的case下面的语句块;
若匹配不上,则继续往下匹配,如都没有匹配上,则执行default下面的语句
循环语句
while循环
语法:
while(判断条件){
循环体
}
do-while循环
语法:
do{
循环体
}while(判断条件)
while循环与do-while循环的区别:无论条件是否满足,do-while至少都会执行一次
普通for循环
for(初始化条件语句;判断条件语句;循环之后执行的语句){
循环体
}
增强for循环
for(变量 in 数组){
循环体
}
使用增强for循环的时候,变量返回的数组中元素的下标
break与continue
break的使用范围:
while循环、do-while循环、for循环以及switch语句中都可以使用
作用:
跳出循环体、或者跳出语句块
continue使用的范围:
while循环、do-while循环或者for循环都可以使用
作用:结束当前循环继续下一次,没有跳出循环体
函数
函数定义:
function 函数名(参数列表){
函数体
return 值;
}
匿名函数:
var func = function(参数列表){
函数体;
return 表达式;
}
变量的作用域:
全局变量:只要不是定义在函数体内的变量,都是全局变量。
例如链接到当前html中所有的js文件,或者写在javascript标签中定义的变量。全局变量在当前文件任何地方都可以使用
局部变量:定义在函数体中的变量,我们称之为局部变量,使用范围为当前函数的函数体
对象object
定义object对象
var obj = {
属性1:属性值1,
属性2:属性2,
函数3:function(){
},...
}
注意:若在函数中使用到obj的属性,我们需要通过this.属性来进行引用.
string对象
使用单引号或者双引号括起来的任意字符就是字符串对象
定义string:
var str = "hello";
拼接string:
1.使用加号: str3 = str1+ str2
2.使用concat() str3 = str1.concat(str2)
访问字符串中字符:
1.通过下标值访问:
str1[index] index的取值[0,str1.length-1]
2.使用charAt()访问
str1.charAt(index)
注意:在js中访问字符串的时候不能使用负数
string切片:
str1.split(str2)
功能:以指定的字符串对str1进行切片.[str2必须给]
字符串替换:
str1.replace(old,new)
功能:使用new来替换old
数组对象
创建数组:
var arr = []
数组拼接:
var arr3 = arr.concat(arr2)
访问数组中的元素:
arr[index] index取值[0,arr,length-1]
向数组中添加元素:
arr.push() 向数组的尾部添加
arr.unshift() 向数组的头部添加元素
删除元素:
1.arr.pop() 删除末尾的元素
2.arr.shift() 删除头部的元素
数组的反转:
arr.reverse()
注意:这个操作是在原数组进行操作的
截取指定长度的数组:
arr.slice(start,end) 取值范围[start,end)
date对象
创建date对象:
var dates = new Date();
获取年份:
dates.getFullYear()
获取月份:[月份日期码,因此要加一处理]
getMonth()
获取日:
getDate()
获取小时:
getHours()
获取分钟:
getMinutes()
获取秒:
getSeconds()
显示日期:
dates.toLocalString("chinese",{hour12:false})
Math
求绝对值:Math.abs()
向上取整 Math.ceil()
向下取整 Math.floor()
求随机数 Math.random()
求开方 Math.sqrt()
求x的y次方 Math.pow(x,y)
定时器
间歇型定时器
setInterval(func,delaytime)
参数一:要执行的函数
参数二:间隔时间 单位ms
清除定时器:clearInterval()
延迟定时器
setTimeout(func,delaytime)
参数一:要执行的函数
参数二:延迟时间
clearTimeout()