1. 什么是JS?
是一种(基于对象)和(事件驱动)的(客户端脚本)语言。
运行环境: 浏览器 (通过浏览器解释执行)
2. JS产生于哪一年,哪个公司,谁?第一个名字是什么?
95年、网景、布兰登、liveScript
3. W3C第一个标准是什么?
ECMA-262
4. JS包含哪几部分?
1. ECMAScript
2. DOM
3. BOM
二、页面中如何引入JS?
1. 行内引入脚本(事件)(不推荐)
2. 内部引入脚本 <script></script>
3. 外部引入脚本 <script src=""></script>
注:外部引入时,script标签中尽量不要写任何内容,如果写了,也不执行。
三、JS中有哪些输出方法?(面试)
1. alert() : 以警告框的方式输出,执行到alert时,会中断后面程序的执行。
2. document.write() : 输出在页面中,会影响到页面布局。
3. console.log(): 输出在控制台中,不会影响用户体验,是程序员最常用的排错工具,它可以输出对象的详细信息。
四、如何换行?
页面中换行:<br>
js中换行 : \n
\t : 空格(8格)
扩展:转义字符 \
五、注释
//单行注释
/* 多行注释 */
六、JS中数据类型有哪些?
基本数据类型: Number String '' "" Boolean (true,false)
特殊数据类型: null undefined
复合数据类型: Object
七、标识符的命名规则有哪些?
1. 命名中只能包含字母、数字、下划线、$
2. 不能以数字开头
3. 不是保留字或关键字
4. 具有相关含义
5. 驼峰命名:
大驼峰:GetElementById
小驼峰:getElementById
6. 匈牙利命名法:
int iNum
float fNum
boo
字符串 str
char ch
Object obj
function fn
八、什么是变量与常量 ?
1. 变量:在内存中开辟一块空间,用于存储数据,在程序运行的过程中,这个数据有可能发生变化,所以称为变量。
2. 常量 :永恒不变的量。 3 true false null undefined "3"
九、如何声明变量?
1. 显式声明 : var 变量名 = 3,变量名,变量名;
2. 隐式声明 : 变量名 = 5;
十、如何给变量赋值?
1. 初始化变量(给变量赋初值) : 声明变量的同时,给它赋值
2. 先声明,后赋值
十一、运算符
1.递增递减运算符
++ --
逻辑思想: 从左到右计算,先遇到变量,则先取变量中的值参与其它运算,然后再自增或自减1.如果先遇到++或--,则先将变量中的值+1 或-1,再参与其它运算。
2.算术运算符
* : 乘
逻辑思想:
1. Number类型之间相乘,正常乘
2. Number/String与String相乘,先将String类型自动转为Number类型,再相乘。如果是数字字符串可以正常转为数字。如果是含有非数字的东西,转换失败,转换成了NaN,乘NaN结果都是NaN
3. true : 1 false : 0 null : 0 再计算
4. undefined/NaN, 结果为NaN
/ : 除
逻辑思想:同乘法
注: 非0的数 / 0 : Infinity
0 / 0 : NaN
% : 模(取余)
逻辑思想:同乘法
- : 减
逻辑思想:同乘法
+ : 加
逻辑思想:
1. 如果加号两边有字符串,则起连接作用,连接成新的字符串。
2. 除第1条以外,true : 1 false : 0 null : 0
3. 除第1条以外,undefined NaN 结果为NaN
3.关系运算符
> : 大于 < : 小于 >= : 大于或等于 <= : 小于或等于
逻辑思想:
1. Number之间比较,正常比
2. Number与String之间比较,先将String转为Number,再比较
3. String之间比较: 从左到右依次比较每一个字符 "100" "10"
4. true : 1 false : 0 null : 0 进行比较
5. undefined/NaN false
== : 等于 != : 不等于 === 全等(恒等) !== 不全等(不恒等)
== 和 != : 只比较结果 3 == '3'
=== 和!== : 先比较数据类型,再比较结果 3 === '3'
切记:
console.log(null == 0); //false
console.log(null == false); //false
console.log(null == ''); //false
console.log(null == undefined); //true
console.log(null === undefined); //false
4.逻辑运算符(0,false,'',null,undefined,NaN)
! : 非
逻辑思想:非真即假,非假即真
&& : 与
逻辑思想:如果&&左边表达式的值为true时,则返回右边表达式的值。
如果&&左边表达式的值为false,短路,则返回左边表达式的值。
|| : 或
逻辑思想:如果||左边表达式的值为true时,短路,则返回左边表达式的值。
如果||左边表达式的值为false时,则返回右边表达式值。
5.三元运算符(三目运算符/条件运算符)
格式: 表达式1 ? 表达式2 :表达式3
逻辑思想:先计算表达式1的值,值为true时,执行?后面的表达式2,值为false时,执行:后面的表达式3
6.赋值运算符
1. 简单赋值 =
2. 复合算术赋值 : += -= *= /= %=
逻辑思想:先取运算符左边变量中的值,然后与运算符右边表达式的值进行相应的算术运算,最后将结果再次赋值给左边的变量。
7.特殊运算符
1. typeof :检测数据类型
console.log(typeof 3); //"number"
console.log(typeof '3'); //"string"
console.log(typeof true); //"boolean"
console.log(typeof false); //"boolean"
console.log(typeof null); //"object"
console.log(typeof undefined); //"undefined"
console.log(typeof NaN); //"number"
console.log(typeof typeof 3); //"string"
console.log(typeof typeof 3 + 3 - 4); //NaN
2. new : 创建对象
8. 优先级:
++ -- ! typeof new
* / %
+ -
> < >= <=
== != === !==
&&
||
?:
= *= /= %= += -=
十二、数据类型转换
1. parseInt('字符串',整数) : 将以有效数字开头的字符串转为整数,否则转为NaN
注:第二个参数整数的范围是 2~36 进制
1. 如果省略第二个参数或第二个参数是0时,默认第一个参数是10进制
2. 如果第二个参数 小于2 或大于36时,结果都是NaN
2. parseFloat('字符串') : 将以有效数字开头的字符串转为小数,否则转为NaN
3. Number('字符串') : 将所有有效数字字符串转为数字。否则转为NaN
扩展:
isNaN() :判断是否是NaN,如果是,返回true,否则返回false
eval() : 解析字符串,并返回表达式的结果
十三、代码规范
1. 运算符两边各加一个空格
2. 写在大括号中的语句,要缩近一个tab键