1.基本语法
1.控制台输出
console.log(输出内容) - 和print的功能一样
2.注释 - 和c一样
//单行注释
/*
* 多行注释
*/
3.标识符
由字母数字下划线和$组成,数字不能开头
4.行和缩进
从语法角度,js代码怎么换行和缩进都无所谓。js中通过{}来确定代码块
5.常见的数据类型:数字,布尔,字符串,数组,对象,函数
a.数字(Number) - 包含所有的数字,包含整数和小数,支持科学计数法,不支持虚数
b.布尔(Boolean) - 只有两个值true和false。这两个值是关键字;分别代表‘真’和‘假’
c.字符串(String) - 使用单引号或者双引号引起来的字符集
d.数组(Aeeay) - 相当于python中的列表
e.对象(object) - 相当于python中的字典和对象
f.函数(Function) - 相当于python中的函数
2.变量
1.变量声明
变量名=值
语法1:变量名=值
变量名-标识符,不能是关键字;驼峰式命名(第一个单词首字母小写,后面每个单词首字母大写);见名思意
语法2:var 变量名 = 值或者var 变量名
var - 声明变量的关键字
补充:js中两个特殊的值 - undefined(没有,空)和null(清空)
3.运算符
1.数学运算符:+,-,*,/,%,++,--
++,-- 都是单目运算符,使用方式:变量++/--,++/--变量
a.++ - 自加1运算;让变量本身值加1
b.-- - 自减1运算:让变量本身值减1
坑:用一个变量单独使用++/--的时候,++/--放前面和放后面效果一样;
如果是使用++/--运算的结果给另一个变量赋值,++/--放前面是先自加/自减在赋值
++/--放后面是先赋值在自加/自减
2.比较运算符:>,<,==,!=,<=,>=,===,!==
结果是布尔值
比较大小的和python一样
a.==:判断值是否相等
b.===:判断值和类型是否相等(完全相等),相当于python中的==,!==相当于python中的!=
3.逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)
运算规则和使用方式和python的逻辑运算一样
4.赋值运算符:=,+=,-=,*=,/=,%=
和python一模一样
5.三目运算符 - ?:
语法:
条件语句?值1:值2 - 判断条件语句的值是否为true,为true整个表达式的结果就是值1否则就是值2
4分之结构
js中的分之结构有两种:if 和switch
1.if 语句
a.if
if(条件语句){
满足条件会执行的代码
}
b.if - else
if(条件语句){
代码段1
}else{
代码段2
}
c.if - else if - else
if(条件语句){
代码段1
}else if(条件语句){
代码段2
}else if (条件语句){
代码段3
}else{
代码段4
}
执行过程和python一模一样
2.switch语句
a.结构:
switch(表达式){
case 值1:
代码段1
case 值2:
代码段2
···
default:
代码段3
}
b.执行过程:
使用表达式的值依次和后面每一个case后面的值进行比较,看是否相等。
找到第一个和表达式的值相等的case,将这个case作为入口,依次执行后面所有的代码
直到执行完成或者遇到break为止。如果每个case的值都和表达式的值不相等
就执行default后面的代码
注意:case后面必须是一个有结果的表达式
a=10
switch(a){
case 5 :
console.log('表达式1')
case 6:
console.log('表达式2')
case 7:
console.log('表达式3')
case 10:
console.log('表达式4')
case 11:
console.log('表达式5')
//break
default:
console.log('表达式6')
}
5.循环结构
js中有for循环和while循环两种
1.for循环
a.for in
结构:
for(变量 in 序列){
循环体
}
执行过程和python一样,但是变量取到的不是元素,而是下标/key(属性名)
序列 - 字符串,数组,对象
b.c的for循环
结构:
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1;判断表达式2的值是否为true,如果为true就执行循环体,执行完循环体在执行表达式3
然后判断表达式2是否为true,为true就执行循环体,执行完循环体,在执行表达式3
···
以此类推,直到表达式的结果为false为止(循环结束)
表达式1
while (表达式2){
循环体
表达式3
}
表达式1
for (表达式2){
循环体
表达式3
}
2.while循环
a.while循环
while (条件语句){
循环体
}
执行过程和python一模一样
b.do-while循环
do{
循环体
}while(条件语句)
区别:do-while的循环体至少会执行一次
6.函数
1.函数的声明
function 函数名(参数列表){
函数体
}
js中的函数除了声明的关键字不一样,其他的都一样
参数可以设置默认值,也可以通过关键字参数来调用函数
2.函数的调用
函数名(实参列表)
js中所有的函数都有返回值,默认是undefined
3.匿名函数(函数的字面量)
函数名 = function(参数列表){函数体}
4.变量的作用域
a.全局变量:只要声明在函数外面的变量就是全局变量;在函数中以'变量名=值'的形式声明的变量就是全局变量
b.局部变量:以关键字var关键字声明在函数中的变量,才是局部变量
7.字符串
1.字符串运算
a.加法运算:做字符串拼接操作
注意:js中支持字符串和其他数据相加
b.比较运算:>,<,==,===,!=,!==
比较相等
比较大小:和python字符串比较大小的方式一样
c.字符串长度
字符串.length
2.相关方法
创建字符串对象
a.big方法
产生一个big标签,并且标签中的内容就是字符串中的值
b.charAt(下标)
获取指定下标对应的字符;相当于:字符串[下标]
c.字符串.charCodeAt(下标)
获取指定下标对应的字符的编码(js中的字符采用的也是Unicode编码)
d.字符串.concat(数据1,数据2......)
将字符串和多个数据依次连接在一起产生一个新的字符串(相当于+的功能)
e.字符串1.endswith(字符串2)
判断字符串1是否以字符串2结尾
f.字符串1.indexOf(字符串2)
获取字符串2在字符串1中出现的第一次的位置
g.字符串1.lastIndexOf(字符串2)
获取字符串2在字符串1中出现的最后一次的位置
h.字符串.match(正则表达式)
相当于python中re模块的match;匹配成功返回一个数组
i.字符串.repea(数字)
指定的字符串重复出现指定次数产生一个新的字符串(相当于python中的*)
j.字符串1.replace(正则表达式,字符串2)
将字符串1中第一个满足正则表达式的子串替换成字符串2
k.字符串.slice(开始下标,结束下标)
从开始下标获取到结束下标为止,步长是1
注意:这的下标可以是负数,代表倒数第几个
l.字符串1.split(字符串2)
将字符串1按照字符串2进行切割,返回一个数组
8.数组
1.加法运算:两个数组相加实质是将数组转换成字符串然后拼接
2.比较运算
==、===判断相等时判断地址石佛偶相等,和python中的is一样
3.数组长度:length属性
2.元素的增删改查
查:获取元素
a.获取单个元素
数组[下标] - 获取下标对应的元素
注意:负数的下标没有意义
b.切片:
数组.slice(开始下标,结束下标) - 返回一个新的数组
注意:结束下标取不到,下标可以时负数;开始下标要在结束下标的前面
c.遍历
for(index in fruits){
console.log(fruits[index])
}
增:添加元素
数组.push(元素) - 在指定的素组的最后添加指定的元素
删:删除最后一个元素
数组.pop() - 删除最后一个元素
数组.splice(下标,个数) - 从指定下标开始删除指定个数的元素
改:修改元素
数组[下标] = 新值 - 修改指定下标对应的值
3.相关方法
数组.reverse()
倒序
数组.sort()
元素从小到大
注意:当判断一个数组纯数字,中位数不同的时候是先判断第一位,在判断第二位来排序......
数组.sort(函数) - 按指定规则对数组中的元素进行排序
函数的要求:两个参数(代表的是数组中的两个元素),一个返回值(两个元素或者两个元素的属性的差)
数组.join (字符串)
将指定的字符串插入到数组的每个元素之间产生一个新的字符串
9.对象字面量
1.对象字面量
用大括号括起来,里面是多个属性,属性名和属性值之间用冒号连接,多个属性之间用逗号隔开
注意:1).对象字面量需要保存 2).属性名可以加引号也可以不加(没有区别)
2.获取对象属性对应的值
1)对象[属性名]
2)对象.属性
3.增:添加属性
1)对象.属性 = 值
2)对象[属性] = 值
属性不存在就是添加
4.构造方法 - 创建对象的方法
语法
function 类名 (参数列表){
对象属性
对象方法
}
说明:
a.对象属性:this.属性名 = 值
b.对像方法:this.方法名=匿名函数
c.类名:首字母大写
这的this相当于python中的self
5.创建对象
对象=new 构造方法()
注意:js中声明全局变量实质都是添加给window对象的属性
6.添加类的全局的属性
类名.prototype.属性名 = 属性值 - 给指定的类的所有对象添加属性
//7.系统的对象和类
//document对象
//window对象
//Element类型的对象
//date类型的对象
//。。。。
//创建时间对象
date1 = new Date()
console.log(date1)
//年
year = date1.getFullYear()
//月 - 从0开始
month = date1.getMonth()
//日
day = date1.getDate()
//时
hours = date1.getHours()
//分
min = date1.getMinutes()
//秒
seconds = date1.getSeconds()
//星期
week = date1.getDate()
网友评论