作者:573079756_3618db | 来源:互联网 | 2023-09-24 11:56
1、document.write和innerHTML的区别document.write是直接写入到页面的内容流,如果在写之前没有调用document.open,浏览
1、document.write和innerHTML的区别
document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。
innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。
innerHTML将内容写入某个DOM节点,不会导致页面全部重绘
innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。
2、Javascript中的alert()和window.alert()有区别
没有区别,你就认为alert = window.alert没什么区别,如果有人觉得有区别,那就来解释一下所有以window.开始的东西,都可以直接把window省略,只是有些变成软件在你写了window.的时候会自动的出现window的方法,所以如果你记得住完全没必要写window。比如location.href = window.location.href
3、JS中创建对象及访问
对象方法作为一个函数定义存储在对象属性中。
对象方法是一个函数定义,并作为一个属性值存储。
创建和使用对象方法。
对象方法是一个函数定义,并作为一个属性值存储。
4、向未声明的 Javascript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。
这条语句:carname="Volvo";
将声明 window 的一个属性 carname。
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。
var var1 = 1; // 不可配置全局属性
var2 = 2; // 没有使用 var 声明,可配置全局属性console.log(this.var1); // 1
console.log(window.var1); // 1delete var1; // false 无法删除
console.log(var1); //1delete var2;
console.log(delete var2); // true
console.log(var2); // 已经删除 报错变量未定义
5、变量作用域
// 此处不能调用 carName 变量
function myFunction() {var carName = "Volvo";// 函数内可调用 carName 变量
}
var carName = " Volvo";// 此处可调用 carName 变量
function myFunction() {// 函数内可调用 carName 变量
}
// 此处可调用 carName 变量function myFunction() {carName = "Volvo";// 此处可调用 carName 变量
}
6、事件响应
事件 | 描述 |
---|
onchange | HTML 元素改变 |
onclick | 用户点击 HTML 元素 |
onmouseover | 用户在一个HTML元素上移动鼠标 |
onmouseout | 用户从一个HTML元素上移开鼠标 |
onkeydown | 用户按下键盘按键 |
onload | 浏览器已完成页面的加载 |
7、变量提升
Javascript 中,函数及变量的声明都将被提升到函数的最顶部。
Javascript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
x = 5; // 变量 x 设置为 5elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x; // 在元素中显示 xvar x; // 声明 x
Javascript 只有声明的变量会提升,初始化的不会。
var x = 5; // 初始化 xelem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y; // 显示 x 为 5 和 y 为undefinedvar y = 7; // 初始化 y
8、Undefined 和 Null
在 Javascript 中, null 用于对象, undefined 用于变量,属性和方法。
对象只有被定义才有可能为 null,否则为 undefined。
如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。
错误的使用方式:
if (myObj !== null && typeof myObj !== "undefined")
正确的方式是我们需要先使用 typeof 来检测对象是否已定义:
if (typeof myObj !== "undefined" && myObj !== null)
9、程序块作用域
在每个代码块中 Javascript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。
以下代码的的变量 i 返回 10,而不是 undefined:
for (var i &#61; 0; i < 10; i&#43;&#43;) {// some code
}
return i;
10、分号的可选性
Javascript 中&#xff0c;分号是可选的,在缺少了分号就无法正确解析代码的时候&#xff0c;Javascript 才会填补分号。
var a
a
&#61;
3
console.log(a)
Javascript 将其解析为&#xff1a;
var a;a&#61;3;console.log(a);
语句的分隔规则会导致一些意想不到的情形&#xff0c;这段代码写成了两行&#xff0c;看起来是两条独立的语句&#xff1a;
var y&#61;x&#43;f
(a&#43;b).toString()
但第二行的圆括号却和第一行的f组成了一个函数调用&#xff0c;Javascript会把这段代码看做&#xff1a;
var y&#61;x&#43;f(a&#43;b).toString();
而这段代码的本意并不是这样。为了能让上述代码解析为两条不同的语句&#xff0c;必须手动填写行尾的显式分号。