权重值越大优先级越高。(无论权重是多少,内联样式表的优先级是最高的)
js是JavaScript的缩写,是一门专门用来控制前端页面的编程语言(属于脚本语言)
js是web中的行为标准 - 主要负责网页中内容的修改
①内联js - 将js代码写在标签的时间属性中
<button type="button" onclick="alert('你好阿菜!')">按钮1</button>
②内部js - 将js代码写在script标签中
<script type="text/javascript">
// js代码
alert('这是内部js')
</script>
③外部js - 将js代码写在js文件中,用script标签导入
<script src="js/02-认识js.js" type="text/javascript" charset="utf-8"></script>
注意:同一个script标签只能在导入外部js和内部js两个功能中选一个
①修改/获取标签内容
②修改/获取标签属性
③修改标签样式
④在网页中插入html代码
大小写敏感
一行语句结束一般不需要分号,箭头函数之前需要加分号
命名采用驼峰式命名
js中的标识符:由字母、数字、下划线和$组成,数字不能开头
语法:
变量 = 值
var 变量名 = 值
let 变量名 = 值
const 变量名 = 值
StudentName = '阿康'
console.log(StudentName)
var age = 18
console.log(age)
let sex = '男'
console.log(sex)
const height = 180
console.log(height)
num = 100
var x = 'hello'
let a = 11
{
num2 = 200
var x2 = 'are'
let a2 = 22
}
function func1(){
num3 = 300
}
变量名1=变量名2=变量名3=…=值
var a1,b1,c1=20
console.log(c1)
++/–放在前面后面和时候的不同
num = 10
num2 = ++ num //num2 = 11
num = 10
num2 = num ++ //num2 = 10
结果都是布尔
console.log(10>20) //false
console.log(5 == '5') //true
console.log(5 == 5 ) //true
console.log(5 === '5') //false
console.log(5 === 5 ) //true
注意:js中的比较运算符,不支持连写表示范围
age = 30
console.log(18<=age<=28) //true
语法:
if(条件语句){
代码块
}
if(条件语句){
条件满足执行的代码
}
else{
条件不满足需要执行的代码块
}
if(条件语句1){
代码块1
}else if()条件语句2{
代码块2
}else if(条件语句3){
代码块3
}
…
else{
代码块N
}
age = 19
if(age>=18){
console.log('成年')
}else if(age<=0 || age>=150){
console.log('你是魔鬼')
}else{
console.log('未成年')
}
语法:
switch(表达式){
case 值1:{
表达式1
}
case 值2:{
表达式2
}
…
defalt:{
表达式N
}
}
说明:
执行过程:
先计算表达式的值,然后让表达式的值依次和每个case后面的值进行比较,哪个case后面的值和表达式的值相等,就将这个case作为入口,依次执行这个case以及它后面的代码块,直接执行完或者遇到break就结束。如果没有哪个case后面的值和表达式的值相等,就将defalt作为入口(注意:defualt不是一定要放到最后)
switch(10){
default:{
console.log('表达式6')
}
case 0:{
console.log('表达式1')
}
case 1:{
console.log('表达式2')
}
case 2:{
console.log('表达式3')
}
case 3:{
console.log('表达式4')
}
case 4:{
console.log('表达式5')
}
}
表达式?值1:值2 - 判断表达式的值是否为true,如果是true,整个表达式的结果是值1,否则是值2。
①while
while(条件语句){
循环体
}
②do-while(保证循环至少执行一次)
do{
循环体
}while(条件语句)
①for-in
for(变量 in 序列){
循环体
}
说明:
a.序列是字符串或者数组,变量取的是下标
b.序列是对象,变量qu的是属性名(相当于字典的key)
②标准for
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1,然后判断表达式2的结果是否为true,如果为true就执行循环体,执行完循环体就执行表达式3,再判断表达式2是否为true,为true就执行循环体,执行完循环体就执行表达式3…以此类推,直到表达式2的结果为false,整个循环结束。
names = ['张三','李四','阿康']
for(x in names){
console.log('x',x,names[x])
}
function 函数命(参数列表){
函数体
}
注意:js中每个函数中都有一个变量arguments,用来接收这个函数在调用的时候传的所有的实参。
function sum(num1,num2){
return num1+num2
}
function func1(a=90,b,c=20){
console.log(`a:${a} b:${b} c:${c}`)
}
函数命(实参列表)
console.log(sum(1,2))
func1(40)
有默认值的参数可以放在没有默认值的前面。
注意:js中使用关键字传参无效,只能使用位置参数传参。
调用函数如果不给没有默认值的参数传参,不会报错,这个参数的值会是undefined
js中每个函数中都有一个变量arguments,用来接收这个函数在调用的时候传的所有的实参。
function func3(){
console.log(arguments)
}
func3()
func3(10)
func3(10,20)
func3('name','age',20)
console.log('===========================')
function func4(x){
console.log('x',x)
console.log(arguments)
for(i in arguments){
console.log('i',i,arguments[i])
}
}
func4()
func4(100,200)
func4('name','阿康','age',18)
函数命 = function (参数列表){
函数体
}
sum1 = function (x,y){
console.log(x+y)
return x+y
}
sum1(10,20)
语法:
(参数列表)=>{函数体}
sum2 = (x,y)=>{
console.log(`x+y:${x+y}`)
return x+y
}
sum2(100,200)