过于简单的知识不会记录,只记录我认为自己第一次学到的或者认为自己记不牢的
body中的JS如何理解?
JavaScript 会在页面加载时向 HTML 的 写文本,相当于添加在原有html代码中添加一串html代码
而如果在文档加载后使用(如使用函数),会覆盖整个文档
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function myfunction(){
document.write("使用函数来执行doucment.write,即在文档加载后再执行这个操作,会实现文档覆盖");
}
document.write("<h1>这是一个标题</h1>");
document.write("<p>这是一个段落。</p>");
</script>
<p >
您只能在 HTML 输出流中使用 <strong>document.write</strong>。
如果您在文档已加载后使用它(比如在函数中),会覆盖整个文档。
</p>
<button type="button" onclick="myfunction()">点击这里</button>
</body>
</html>
JS语法错误会引发后续代码中止,但不会影响其他JS代码块
“+”
- 任何类型数据 + 字符串都会变成字符串
&&与运算
undefined、false、NaN、null、""、false
等进行与运算- 当有两个表达式时,计算机会先判断第一个表达式的值,若为真,则会返回第二个表达式的值,若为假则会返回假,若有多个表达式时会一次往后看,反正为真就往后看
【例】结果分别为5、4,因为加减运算优先级高于逻辑运算
var a = 1;
var b = 2;
var c = 1 + (a && b) + 2;
document.write(c);
var a = 1;
var b = 2;
var c = 1 + a && b + 2;
document.write(c);
-
在商业开发中常会用到
&&
来判断数据是否有效,因为在前后端通信时,后端可能会有一些 无意义 的数据,这时候可以用&&
来筛选
【例】data && fuction(data);
只有当data
有意义时才会执行相关函数,避免程序瘫痪。 -
注意二进制
&
||或运算
如何取出函数参数的值?
在IE浏览器中
div.onclick = function(x) { }
参数x的值为空,不能通过var y = x;
这种方法取出,而x实际的值存在window.event
中,所以要想程序兼容各种浏览器需要用到||
运算,如下
var y = x || window.event;
typeof
typeof
可返回变量或方法或对象的数据类型(Number,String,Boolean,Object,undefined,function
)
但是对于null
、Array
同样会返回Object
,因为最早null
是作为空对象来使用的
undefined、null
不能调用toString()
方法
parseInt
和toString
都有radix参数,前者可把目标进制转换为十进制整数,后者可把十进制转换为目标进制
函数细节
- 命名定义函数(一般不用)
函数名即指代函数体
函数名.name
即为函数名
- 匿名定义函数(一般所指的函数)
匿名定义函数则为相应变量名
参数传递
需注意形参parameter
与实参arguments
之间存在映射关系,其中一个发生变化另一个也会发生变化,但他们不是同一个变量
- 实参多于形参
实参会存进“类数组”
arguments
实参列表中,可使用变量名.arguments
访问
应用:不定参求和
- 形参多于实参
多余的形参类型为
undefined
,可通过函数名.length
访问形参长度