JavaScript基础笔记
JavaScript 基础
date: 2019-05-26T10:19:54+08:00
1.在标签中填写 onclick 事件调用函数时,不是 onclick=函数名, 而是 onclick="函数名+()"
2.script 中用到的函数中带 document.write 会覆盖之前的文本。
3.js 输出数据:
- 使用 window.alert() 弹出警告框
- 使用 document.write() 方法将内容写到 HTML 文档中
- 使用 innerHTML 写入到 HTML 元素
- 使用 console.log() 写入到浏览器的控制台
使用 javascript 操作 html 元素,使用 document.getElementById(id) 方法,id 要自己在元素内标记。
4.js 对象用花括号包裹,采用键值对的方式来定义对象的属性,访问属性可以用对象名.属性,也可以对象名["属性名"]这样。
在声明变量时,不必要一开始就设初值,可以后面追加,那么定义时可以 var st = new Object(),然后再分别 st.name="abc"来对属性赋值。但用了 new 定义的就是对象。
数组的声明,可以 var arr = new Array("a","b")也可以 var arr = ["a","b"]
5.使用 typeof 无法区分数组和对象,返回的都是 object。可以采用 Array.isArray(数组名)这一方法来判断,也可以 数组名 instanceof Array 来判断。
6.基本类型的变量存放在栈内存中。即赋初值时可以借用其他变量,但并不会随着其他变量的变化而变化。
var a = 3;
var b = a;
console.log(a); //3
console.log(b); //3
a = "a";
console.log(a); //"a"
console.log(b); //3
7.如果把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性,默认为全局变量。
8.let 声明的变量,与 var 作用域不同,只作用于自己所在的代码块{}中,如果包含在 if 中,那么出了 if 块,这个 let 将无效。
用 var 声明变量,加入函数内和函数外声明的变量同名,是会改变函数外这个变量的值的。这种情况下要么用 let 限制范围,要么干脆改个变量名。
在相同作用域下,不允许先 var a =1,然后 let a=2,倒过来也一样。但是同种声明来改值的话是可以的。
9.单引号和双引号均能定义字符串,并且字符串中能包含另一种引号,如要包含与首尾相同的引号,就得用'或者"这样的转义字符了。并且字符串可以用 s[7]这样的索引来访问单个字符。
10.js 中的和=的区别:
:用于比较二者值是否相等,如类型不同,将高等类型转化为初等类型,"1"1 是 true 的。
===:要求类型与值皆相等,若类型不同,直接判 false
11.+号用于拼接字符串,同时字符串也能与数字拼接。自左向右的顺序,如果先碰到字符串,那么接下来的数字都将作为字符串拼接,若显示数字间的+,会作和再与字符串拼接。
12.js 中可以对一个代码块打标签,label:{statement},然后使用 break label 或者 continue label 可以针对该标签来跳出或者继续。这样扩大了 break 和 continue 的使用范围。
13.null 和 undefined:
null 用于对象,undefined 用于变量,属性,方法。
undefind 代表声明了但为赋值。null 是没有值,一般用于主动释放内存,即不再使用一个变量时,将其赋值为 null。
undefined 和 null 值相等,但类型不同。
14.将其他类型转化为字符串,可以用 String(2)或者 2.toString()。
将字符串转化为数字,如果是空字符串,返回的是 0,如果字符串不好直接转为数字,会变成 NaN,这不是个数字,但他是 number 类型的。
15.一元运算符+可以用来将字符串转化为数字,比如 y="5",x=+y,x 就是 5。如果 y 是"John",就变成 NaN 了,但类型上还是数字。
16.try、catch、throw、finally 这四个用作错误处理,try 就是尝试操作,如果符合某种错误情况,用 throw 抛出自定义错误 err,然后 catch(err)中针对错误做处理,最后的 finally 是无论如何总要进行的操作。
17.变量提升,就是可以先给变量赋值并使用,而在最后再声明,这种操作是可行的,但不适用于初始化变量,只能 var a,但不能 var a = 7。在严格模式中,就不能使用为声明的变量。
let 与 var 不同,不允许变量提升。
18.js 中字符串断行要用到反斜杠,switch 语句在判断的时候是采用===恒等计算的,要求类型也一致。数组不允许用名字来索引,只能用数字下标索引,一旦数组用名字做索引,会认定是对象。
19.表单自动验证可以在 input 框属性中使用 required="required"要求必须填入内容。
20.void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行。

浙公网安备 33010602011771号