DOM对象
1.逻辑运算 || && !
1||2 (结果为1)
5&&4 (结果为4)
!0
口诀:
|| 遇到第一个数字是true,就结束,并返回
&& 遇到第一个为false就终止,返回false(如果没有false,就返回最后那个数)
|| 和 && 在一起
&&的优先级高于||
2.作用域的问题?
1)js代码如何执行?
2)js的环境?
3)栈内存、堆内存?
解析:js代码在客户端执行前,浏览器会给这个js一个全局环境,这个环境分两个部分,一个是内存模块,一个是执行模块,内存模块找到当前环境下所有带var function的关键字,
var 进行变量声明 function进行声明和定义
执行模块逐行向下执行,会出现语句和代码块,如果是函数执行会开辟一个类似于window的私有作用域,在这个私有作用域分两个模块,内存模块和执行模块,内存模块找出
当前环境下所有带var和function的关键字,需要注意函数形参,因为他也是一个私有变量,带var进行变量声明为私有变量
function声明和定义都完成了,然后执行模块逐行执行
Dom对象 。 dom的全称 document object model (让js于HTML进行关联)
dom主要研究html中的节点(标签)对节点进行操作,改变标签属性、样式、添加事件等
操作流程:
选择你要操作的节点 (dom研究的对象是document)
通过id获取元素: document.getElementById() ()里面填的是id名 document是对象 getElementById()是方法
通过标签获取: document.getElementsByTagName() ()里面填的是标签名 获取整个网页中所有div构成的数组集合
通过class获取: document.getElementsByClassName() ()里面填的是class名 获取整个网页中class叫name的数组集合
document.write() 输出: 向文档外输出(在整个文档输出)
在指定元素中输出 innerHTML="" 还有一种写法 innerText="" ""指的是元素中的内容
二者的区别?
innerHTML 可以嵌套标签
innerText 不可以嵌套标签
这些东西很抽象,所以附一串代码方便理解
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="a" class="aa">
hello world
</div>
<div id="b" class="bb">
asasasa
</div>
</body>
</html>
<script>
var a=document.getElementById("a").innerHTML="<b>可以嵌套标签</b>";
console.log(a)
var d=document.getElementById("b").innerText="<b>不可以嵌套标签</b>";
console.log(d)
var b=document.getElementsByTagName("div");
console.log(b)
var c=document.getElementsByClassName("bb");
console.log(c)
</script>