1.什么是js
js是javascript的缩写,是web标准的行为标准,负责网页中内容变化的部分
2.在那儿写js代码
a.写在标签的事件中,例如按钮的onclick属性
b.写在script标签中(将js代码作为script标签的内容)
注意:script标签理论上是可以写在html中的任何一个地方,但是一般都放在head和body中
c.写在js文件中,在html中通过script标签将文件导入(src属性值就是导入的js文件路径)
3.js能做什么
a.在网页指定的位置插入标签
b.修改网页中标签的内容
c.修改标签的样式
4.怎么写js代码
javascript是一门编程语言,和python一样是动态语言也是脚本语言,但是和java没有关系
补充:Windows.alert(信息) - js代码,在浏览器上弹出一个对话框,对话框中显示指定的信息
基本语法
1.控制台输出
console.log(输出的内容) - 和print的功能一样
2.标识符
由字母数字下划线和$组成,不能是数字开头
3.行与缩进
从语法角度,js代码怎么换行和缩进都可以,js是通过{}来确定代码块
4.常见的数据类型:数字,字符串。布尔,数组,对象,函数
数字(Number) - 包含所有数字,包含整数小数,例如:100,12.5,-394,3e2
支持科学计数法,但是不支持虚数
b.布尔(Boolean) - 只有两个值true和false,这两个值是关键字,分别代表真和假
c.字符串(String) - 只有单行字符串用单引号或者双引号括起来的字符集
d.对象(Object) - 相当于python中的字典和对象{}
e.函数(Function) - 相当于python中的函数
变量
1.声明变量
语法1:变量名=值
变量名 - 标识符,不能是关键字,驼峰式命名(第一个单词首字母小写,后面单词首字母大写,见名知义)
语法2 - var 变量名=值 或者 var 变量名
区别 - 声明的时候加var,变量可以不用赋值,默认是undefined;不加var就必须赋值,否则就报错
补充:js中有两个特殊值 - undefined(没有,空) null(清空)
同时声明多个变量,赋一样的值
a1=a2=a3=1
同时声明多个变量赋不一样的值
var a1=1,a2=2,a3=3
运算符
1.数学运算符:+ - * / % ++ --
前面五个运算符和python一模一样
++ -- 都是单目运算符
2.比较预算符:>,<,==,!=,>=,<=,===,!==
比较大小的运算符和python一样,结果都是布尔值
a.==判断值是否相等
b.===判断值和类型是否相等(完全相等),相当于python中的==,
!==相当于python中的!=
3.逻辑运算符:&&(与) ||(或) !(非)
运算规则和python一模一样
4.赋值运算符:= += -= *= /= %=
和python一模一样
5.三目运算符
条件语句?值1:值2 - 判断条件语句是否为真,如果为真结果就是值1,反之则是值2
6.运算顺序 数学运算符>比较运算符>逻辑运算符>赋值
如果有括号,先算括号里面的
分支结构
js中分支结构有两种:if 和switch
1.if语句
a.if
if(条件语句){
满足条件会执行的代码
}
b.if-else
if(条件语句){
满足条件会执行的代码
}
else{
不满足条件会执行的代码
}
c.if-else if-else
if(){
}else if(){
}else{
}
执行的过程和python一模一样
2.switch语句
a.结构
switch(表达式){
case 值1:
代码段1
case 值2:
代码段2
case 值3:
代码段3
default:
代码段4
}
b.执行过程
使用表达式的值依次和后面每个case的值进行比较,看是否相等,找到第一个和表达式的值相等的case,将这个case作为入口,依次执行后面的所有的代码,直到执行完成或者遇到break为止,如果每个case的值都和表达式的值不相等,就执行default后面的代码
注意:case后面必须是一个有结果的表达式
循环结构
js中有for循环和while两种
for循环
a. for-in
for(变量 in 序列){
循环体
}
执行过程和python一样,但是取到的值不是元素,而知下标/key(属性名)
序列 - 字符串、数组、对象
b.c的循环
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1,然后判断表达式2的值是否为真,如果为真就执行循环体,循环体执行完就执行表达式3,然后判断表达式2是否为真,如果为真就执行循环体,以此类推,知道表达式2不为真,循环结束
2.while循环
a.python的循环一模一样
while(条件语句){
循环体
}
b.do-while
do{
循环体
}while(条件语句)
区别:do-while的循环体至少会执行一次
typeof() - 获取值的类型
函数
1.函数的声明
function 函数名(参数列表){
函数体
}
js中的函数除了声明关键字不一样,其他都一样
参数可以设置默认参数,也可以通过关键字参数来调用函数
2.匿名函数(函数的字面量)
函数名 = function(参数列表){函数体}
3.变量的作用域
a:全局变量 - 只要声明在函数的外面的变量就是全局变量,在函数中以 变量名=值 的形式声明的变量也是全局变量,但是要先调用这个函数,因为只有调用这个函数,才会执行函数体
b.局部变量:以var关键字在函数内部声明的变量就是局部变量
js中所有的函数都有返回值,默认是undefined
字符串
1.字符串字面量
a.使用双引号或者单引号括起来的字符集
b.除了普通字符以外还可以是转义字符:\n \t \ ' ''
c.\u4位16进制对应的Unicode编码
2.获取字符串
字符串[下标] - 获取单个字符串
下标 - 范围是0-字符串的长度-1,下标如果越界取到的值是undefined
js中没有切片
3.相关运算:+
NaN - js中一个特殊的值,类似undefined、null,用来表示一个不存在的数值
字符串+数值 - 支持字符串和其他任何数据相加,是将其他数据全部转换成字符串,然后在拼接
4.字符串长度
String.length
js中数据类型转换 类型名()
6.js数组中只需要关注
1.如何获取数组中的值
2.数组的方法
3.元素可以是任何类型