目录
H5标准下,元素的 id 可以在 js 内当作一个天生的变量使用,表示的就是这个元素;
输出语法规则
- alert(内容) / 浏览器提示弹出框输出;
- console.log(内容) / 浏览器控制台输出;
- document.write(内容) / 浏览器页面输出;
- 纯文本必须包裹引号;
- 纯数字,是否引号无所谓;
- 没有引号,当作变量解析,没这个变量会报错;
变量命名规则
- 变量名只能有 数字(0-9)字母(a-z A-Z)美元符($)下划线(_)组成;
- 不能由数字开头;
- 严格区分大小写;
- 不要使用关键字和保留字;
- 变量语义化;
- 驼峰命名法;
- 不使用中文;
基本数据类型
- Number 数值;
- String 字符串 ;
- Boolean 布尔:(两个值 true false);
- Undefined 空 :(定义变量,未赋值);
- Null 空 :(定义变量,赋值为 null);
检测数据类型
- typeof( * ):以字符串形式返回 * 的数据类型;
数据类型转换
- 转数值
- Number():转数值,当作整体看待;
- parseInt():按位转换,只返回非数值之前部分,不认识小数点,可取整操作;
- parseFloat():认识小数点;
- 非加法的数学运算:var res = string - 0;
- 转字符串
- String();
- toString():不能转换 null 和 undefined;
- 进行加法运算:只要任意一边是字符串,就会进行字符串拼接;
- 转布尔
- false:数值0、空字符串‘’、数值NaN、undefined、null;
- true:其他所有内容
运算符
- 算数运算符
- + :数学运算,两边必须是布尔或者数字;字符串拼接,任意一边是字符串;
- - :数学运算;
- * :数学运算;
- / :数学运算;
- % :取余运算;
- 赋值运算符
- = :赋值运算;
- += :在本身基础上递加;
- -= :在本身基础上递减;
- *= :在本身基础上阶乘;
- /= :在本身基础上除;
- %= :用余数取代自己;
- 比较运算符
- > ; < ;>= ;<= ;
- == :值相等,不考虑数据类型;
- === :考虑数据类型;
- != :值不等,不考虑数据类型;
- !== :考虑数据类型;
- 逻辑运算符
- && :(短路表达式)左边为true,右边执行;左边为false,右边不执行;
- || :(短路表达式)左边为true,右边不执行;左边为false,右边执行;
- !:(双取反转布尔),!!0 为false;
- 自增自减运算符
n | n++ | n |
5 | 5 | 6 |
++n | ||
6 |
- isNaN():返回值为布尔,true是一个非数字,false是一个数字;
H5标准下,元素的 id 可以在 js 内当作一个天生的变量使用,表示的就是这个元素;
<input id="first" type="text">
<button id="btn"></button>
<script>
btn.onclick = function () {
console.log(first.value)
}
</script>
分支语句-switch()
<script>
var num = 3;
switch (num) {
case 1:
console.log('我是 1');
break;
case 2:
console.log('我是 2');
break;
case 3:
console.log('我是 3');
break;
default:
console.log('我啥也不是')
}
</script>
循环控制语句
<script>
for (var i = 1; i < 5; i++) {
console.log(i);
if (i === 3) {
console.log('到' + i + '停')
break;
}
}
</script>
arguments
-
函数内天生自带的一个变量,里面存放着调用时传递进来的所有实参;
-
里面的数据都是按照索引排列的;
-
访问arguments里面的数据,使用语法:arguments[index];
-
获取arguments的长度即数据的个数,使用语法:arguments.length;
-
实参比形参多的时候,使用arguments[index]来访问;
break / return
- break 打断循环;
- return 跳出函数;
作用域分类
- 全局作用域;
- 私有作用域:只有函数生成私有作用域;
作用域的机制
- 变量定义机制
- 定义在哪个作用域下,就是哪个作用域的私有变量;
- 只能在该作用域及其后代作用域中使用;
- 变量赋值机制(私有作用域有,只改变自己的,私有作用域没有,改变父级的)
- 自己作用域有该变量,就给自己赋值;
- 自己作用域没有该变量,则给父级的变量赋值;
- 父级作用域没有,就给再父级的变量赋值;
- 以此类推,直到把变量定义为全局变量,在进行赋值;
- 变量访问机制
- 自己作用域有,直接使用;
- 自己作用域没有,访问父级的,以此类推;
- 直到全局作用域没有,直接报错;