好好学习 ,天天向上。Are you ready?
一、JS概述
1. 什么是JS?
Javascript是(基于对象)和(事件驱动)的(客户端脚本)语言。
2. 哪一年?哪家公司?谁?第一个名字?
1995 网景 布兰登 livescript
3. W3C第一套标准:ECMA-262
4. js包含哪几部分?
ecmaScript
DOM
BOM
二、如何在页面中引入JS?
1. 行内引入脚本(事件) 不推荐
2. 内部引入脚本
注:外部引入时,script标签中尽量不要写任何内容,即使写了,也不执行。
必须保证是双标签。
三、JS中输出语句有哪些?区别是什么?(面试)
1. alert() : 以警告框的形式输出,如何执行alert,会中断它后面语句的执行。常用于排错。
2. document.write() : 在页面中输出,会改变当前的页面布局。
3. console.log() : 在控制台中输出F12,不会影响用户体验,会输出对象的详细信息,是程序员最常用的代码调试工具。
四、JS中如何实现换行?
在页面中换行 :<br>
JS中换行:转义字符: \ : 转义符
\n : 换行
\t : tab(一次跳8个空格)
五、JS中数据类型有哪些?
1. 基本数据类型
Number : 3 3.14 -3
String : 只要写在引号中的内容,都是字符串,’’ “”
注:’""’ “’’” “中国”
Boolean(布尔): true false 常用于判断语句中
2. 特殊数据类型(面试)
null : 空
undefined : 未定义,也表示空
3. 复合数据类型
Object : 对象
官方: 基本数据类型: Number/String/Boolean/null/undefined
复合数据类型: Object/Array
六、JS中标识符的命名规则?
1. 标识符:标识一个变量、数组、函数等的有效字符序列。
2. 命名规则:
1》 只能包含 字母、数字、下划线、$、中文(不推荐)
2》 不能以数字开头
3》 不能保留字或关键字
4》 要语义化(具有相关含义)
5》 驼峰命名
1… 大驼峰:ZhongHuaRenMinGongHeGuo 常用于类名(构造函数名)
2… 小驼峰:zhongHuaRenMinGongHeGuo
6》 匈牙利命名法:
1… int iNum : 整数
2… float fNum : 小数
3… string str : 字符串
4… char ch : 字符
5… array arr : 数组
6… function fn: 函数
7… object : obj : 对象
8… regexp : re : 正则
9… boolean : bo : 布尔
七、JS中的变量与常量?
1. 什么是变量?
在内存中开辟一块空间,这块空间是为了存储数据,空间的名字叫变量名,而在这个空间数据会随着程序的运行而变化,所以称为变量。
2. 如何声明变量?
1》显式声明: var 变量名,变量名,变量名;
2》隐式声明: 变量名 = 值; (不推荐)
3. 如何给变量赋值?
1》初始化变量:声明变量的同时给它赋值
2》先声明,后赋值
4. 什么是常量?
永恒不变的量。 3 ‘3’ true false
八、JS中的运算符
1. 递增 ++ 递减 –
运算逻辑: 从左到右,先看到变量,则先取变量中的值参与其它表达式的运算,然后再递增或递减。 先看到递增递减,则先将变量中的值 + 1 或 -1 ,再取变量中值参数其它表达式的运算。
2. 算术运算符
* : 乘
运算逻辑:
1… 数字相乘,正常相乘
2… 如果有字符串,先将字符串自动转换为数字,再相乘。如果是数字字符串,会转为数字。如果有非数字字符,会转为NaN。
3… true转为1 , false 转为0, null 转为0进行计算。
4… 乘以undefined或NaN,结果都是NaN
/ : 除
运算逻辑:
1… 数字相除,正常相除
2… 如果有字符串,先将字符串自动转换为数字,再相除。如果是数字字符串,会转为数字。如果有非数字字符,会转为NaN。
3… true转为1 , false 转为0, null 转为0进行计算。
4… 除以undefined或NaN,结果都是NaN
注: 非0的数除以0 ,结果为Infinity
0 除以 0, 结果为NaN
% : 模(取余)
运算逻辑:
1… 数字相除,正常相模
2… 如果有字符串,先将字符串自动转换为数字,再相模。如果是数字字符串,会转为数字。如果有非数字字符,会转为NaN。
3… true转为1 , false 转为0, null 转为0进行计算。
4… 除以undefined或NaN,结果都是NaN
- :减
运算逻辑: 同上
+ :加
1. 如果+两边有字符串,就连接成新的字符串。
2. 除第1条外,true : 1 false : 0 null : 0 计算
3. undefined,NaN ,都是NaN
3. 关系运算符
> : 大于
< : 小于
>= : 大于或等于
<= : 小于或等于
运算逻辑:
1> 数字比较: 正常比较
2> 数字与字符串比较,先将字符串转为数字,再比较
3> true : 1 false : 0 null : 0
4> undefined或NaN : false
5> 两个字符串比较,从左到右,依次比较。
‘330’ > ‘33’
== : 等于
!= : 不等于
只比较结果,不看数据类型
如: 3 == ‘3’ true
=== : 全等
!== : 不全等
先比较数据类型,类型相同,再比较结果
如: 3 === ‘3’ false
切记:
null == false false
null == 0 false
null == “” false
null == undefined true
null === undefined false
NaN == NaN false
4. 逻辑运算符( 0 , false, null ,undefined, NaN, “”)
! :非
运算逻辑: 非真即假,非假即真
&& : 与
运算逻辑: &&左边的表达式的值为true时,返回&&右边表达式的值。&&左边的表达式的值为false时,发生短路,返回&&左边表达式的值。
|| : 或
运算逻辑: ||左边的表达式的值为true时,发生短路,返回||左边表达式的值。 ||左边的表达式的值为false,返回||右边的表达式的值。
5. 三元(三目)运算符 ?:
格式: 表达式1 ? 表达式2 : 表达式3
运算逻辑: 先计算表达式1的值,值为true时,执行表达式2,值为false时,执行表达式3
//根据成绩判断是升班还是留级?
var iScore = prompt(“请输入一个成绩:”,“如:100”);
alert(iScore >= 90 ? ‘升班’ : ‘留级’);
6. 赋值运算符
1》简单赋值 =
2》复合算术赋值 += -= *= /= %=
运算逻辑: 先取运算符左边变量中的值 与 运算符右边表达式的值 进行相应的 算术运算,最后将运算的结果再赋值给 运算符左边的变量。
7. 特殊运算符
1》 new : 创建对象 格式 : new 类名() 类名(构造函数名)
2》 typeof : 检测数据类型
九、数据类型的转换
1. parseInt(‘字符串’,整数) : 将字符串转为整数。
注:1.如果字符串是以有效数字开头,则只将开头有效整数部分转成数字,否则转为NaN
2. 第二个参数: 2~36 :表示前面第一个参数的进制;如果省略第二个参数或第二个参数为0时,表示第一个参数是十进制。如果小于2或大于36,结果都是NaN。 第一个参数不符合第二个参数的进制时,结果也是NaN
2. parseFloat(‘字符串’) : 将有效数字开头的字符串转成小数。否则转为NaN
3. Number(‘字符串’) : 将纯有效数字字符串转为数字。否则转为NaN
4. isNaN(): 判断参数是否为NaN,是返回true ,否则返回false
5. eval() : 将字符串转为表达式并返回表达式的值。
十、代码规范
1. 运算符两边要有一个空格
2. {}中的语句要缩进一个tab的位置
3. 严格区分大小写
十一、进制
二进制 : 0~1 逢二进一
十进制 : 0~9 逢十进一
八进制 : 0~7 逢八进一
十六进制: 09,AF 逢十六进一
十二、运算符的优先级
! ++ – +(正) -(负) new typeof
* / %
+ -
> < >= <=
== != === !==
&&
||
?:
= *= /= %= += -=
var i=5;
var a=3;
// 6 7 8 9
a+=++i + ++i - i++ + i++;
// 3 += 6 + 7 - 7 + 8 a = 17