js学习笔记
js组成部分:ECMAScript标准规范,DOM文档对象模型,控制标签,BOM浏览器对象模型,控制浏览器
标签获取:
document.getElementById(’’); //通过id名获取元素,只能获取一次,再用只能重新获取
?
标签的修改:
? 添加内容:innerHTML方法
document.getElementById('').innerHTML="需要添加的内容";
document.getElementById('').style.backgroundColor="green"; //修改css样式,backgroundColor不
可用连字符,只需将后面的首字母大写即可
?
document.getElementById('').style.cssText=""; //添加多条css样式,即复合写法,写法和css一样,不能省略连字符
声明变量:
let guagua = document.getElementById(''); //使得guagua变量代替document.getElementById('')
数据类型
js数据类型有7种:
? nubmer:数字型
? string: 字符型
? boolean:布尔型
? null: 空对象
? undefined:未定义
? symbol: 符号
? 以上6种属于基础类型
? object: 对象,一种复杂类型
typeof:可以简单的判断数据类型,没有能准确判断的,null和function函数不能判断
Object.prototype.toString.call() //最好的判断数据类型方法
instanceof
获取元素节点的其他方式
let boxS = document.getElementsByClassName('box'); 通过class名获取元素,因为class不唯一,所以一般为复数,低版本IE不支持
boxS[0].innerHTML = "1" 通过下标选择第几个‘box’
let boxS = document.getElementsByTagName('div'); 通过标签名获取元素,因为标签不唯一,所以一般为复数
let boxS = document.getElementsByName('div'); 通过Name名获取元素,因为不唯一,所以一般为复数
let boxS = document.querySelectorAll('body div/body div.box名位box的div'); 通过选择器获取元素
let boxS = document.querySelector('body div/body div.box名位box的div'); 通过选择器获取元素,只取第一个获取的元素
getComputedStyle() 获取标签的css属性,不兼容ie8及以下浏览器
box标签 . currentStyle ie8及以下浏览器使用,但不兼容谷歌浏览器,无需加括号
注注注注注注:其他获取元素为复数的方法,获取的是一个集合,不是元素,必须通过下标来明确是哪一个元素
ById,querySelectorAll,querySelector为静态获取,其余为动态获取
======================================================================================
声明变量
var //es5及其以前使用的,弊端,定义全局变量会成为顶层/全局对象window属性上,会污染window,同一作用域可声明多次
let //es6使用,弥补var污染window的缺陷,不会成为window的属性。特性:参与声明的变量在同一作用域只能声明一次,多次会报错
const //特性与let一样,声明常量,必须立刻赋值,不允许二次更改值,本质是变量存储的内存地址不变,像数组和对象是可以改变值的
与变量息息相关的是作用域
作用域:变量起作用的范围,全局作用域,函数作用域,块作用域
变量的查找,由内向外,从自己出发查找,有全局作用域只有一个不同的全局全局变量是互通的
方法都是挂载在对象上的
if语句
if ( 判断条件 ) {
//判断条件的结果是boolean true或false
//只有6个值是假值:0,"",false,undefined,null,NaN。"0","false"……不是假值,是字符串,字符串内容不为空,为真
}else{
//注:颜色和地址是不能作为判断条件的,颜色和地址,有多种表示方法
}
比较符号:>,<,>=,<=,==等于,当2个参数数据类型不同时,会发生类型转换,,!=,===全等于,数值和数据类型都相等,不会发生类型转换,!==
if ( 判断条件 ) {
//多分支判断
}else if {
}else if {
}else{
}
switch( 需要判断的变量){
//前提条件:1.必须要有判断的变量是不变的
case : 判断条件 //前提条件:2.必须判断的是===全等于才可以用
break;
case : 判断条件
break;
defaule:其余条件下
break;
}
三目运算:判断条件 ?真,执行 :假,执行 当if只有真假判断,且真假有且只有一条语句的时候使用
===================================================================================
for循环
for( let i = 0 ; i < 循环条件的终点 ;i++ ){
//for(声明变量:记录次数;判断条件;自增)
}
多层循环每个循环的变量都不能一样
coutinue 停止当前循环
break 终止循环
不确定判断次数时用while
while ( 判断条件 ) {
//先判断再执行
循环体
自增
}
do {
//先执行再判断
循环体
}
while ( 判断条件
运算符
一、算术运算符
%取余,+,-,*,/ 注//只有 + 才会出现字符串的拼接
NaN:not a number //当出现NaN时&#x