JS用法
- 在body种 多为单条语句
- 在head种 多为函数
- 外部的JS
<script src="myScript.js"></script>
JS输出
- window.alert() 弹出警告框
- innerHTML 写入到元素
- console.log() 写入到浏览器控制台
- document.write() 将内容写到HTML文档种
JS字面量(一般固定值称为字面量)
- 数字
- 字符串
- 表达式
- 数组
- 对象
- 函数
JS变量
- var
空格
- JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。
数据类型
- 值类型
- 字符串
- 数字
- 布尔
- Null
- Undefined
- Symbol 表示独一无二的值
- 引用类型
- 对象
- 数组
- 函数
动态类型
var x; // x 为 undefined
var x = 5; // 现在 x 为数字
var x = "John"; // 现在 x 为字符串
Undefined和Null
- Undefined 这个值表示变量不含有值。
- 将变量的值设置为 null 来清空变量。
- null和undefined的值相同,但是类型不同
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
- 何时使用null:当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。
全局JS变量
- 在函数外声明的变量是全局变量,网页上所有的脚本和函数都能访问它
- 生命周期:在页面关闭后被删除
向未声明的JS变量分配值
cars = "Voood";
将声明window的一个属性 cars
在HTML种,全局变量是window对象,所有数据变量都属于window对象
其实也就是有一个全局对象window,你所声明的全局变量都是window的属性值
HTML事件
- 可以直接在onclick上写函数实现
<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
- HTML常见DOM事件 http://www.runoob.com/jsref/dom-obj-event.html
String 对象
如果把数字与字符串相加,结果将成为字符串!
比较运算符
- == 等于,值相等即可 例如
5 == "5" true 5 == 5 true
- === 绝对相等 值和类型均相等
5 == "5" false 5 == 5 true
For/In循环
- JavaScript for/in 语句循环遍历对象的属性
var person={fname:"John",lname:"Doe",age:25}; for (x in person) // x 为属性名 { txt=txt + person[x]; } JohnDoe25
JS类型转换
- 可谓非常之丰富,到具体使用的时候再看吧
变量提升
- 只有声明的变量会提升,例如 var x; 初始化的不会,例如 var x = 5;
var x = 5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y; // 显示 x 和 y
var y = 7; // 初始化 y
y 输出了Undefined . 因为变量声明 var y 提升了,但是初始化 y = 7 并不会被提升
代码等同于
var x = 5; // 初始化 x
var y; // 声明 y
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y; // 显示 x 和 y
y = 7; // 设置 y 为 7
严格模式
- “use strict” 只允许出现在脚本或函数的开头
let关键字
- let 声明的变量只在 let 命令所在的代码块内有效
{
var x = 2;
}
// 这里可以使用 x 变量
{
let x = 2;
}
// 这里不可以使用 x 变量
- 使用 var 关键字声明的全局作用域变量属于 window 对象
var carName = "Volvo";
// 可以使用 window.carName 访问变量
- 使用 let 关键字声明的全局作用域变量不属于 window 对象
let carName = "Volvo";
// 不能使用 window.carName 访问变量
尽量使同let关键字定义变量,除非想定义一个window对象的全局属性,否则不建议使用var
const 关键字
- const在使用上和let很相似,除了:
- const声明的常量必须初始化,而let声明的变量不用
- const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。
javascript:void(0) 含义
- void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行,如 void(alert(“Wornning!”))
<a href="javascript:void(0);">点我没有反应的!</a>
<a href="javascript:void(alert("test"));">test!</a>