JS--基础
001、你对js的理解
a、由网景公司(Netscape)开发
b、这是一个跨平台的脚本语言
c、应用在网页中,用来操作浏览器及网页内容
d、javascript最初的设计是为了检验HTML表单输入的正确性
002、js的三大组成部分
ECMAScript:一种规范
BOM(browser) object Model:浏览器对象模型
DOM(document):文档对象模型
003、js引入的方式
1、<div onclick="alert(1)"></div>
2、写在<script></script>
<script>
alert(1)
</script>
3、写在js文件
<script src="js/index.js"></script>
004、js的注释
单行注释://
多行注释:/**/
005、js中变量的命名规则
规则:数字、字母、下划线、$符号,其中不能以数字开头
声明:不可以使用关键字和保留字
建议:见名知意
命名方法:驼峰命名法、常规命名(_连接)、匈牙利命名
006、js中的数据类型有哪些
js的数据类型分为:基本数据类型、复杂数据类型
基本数据类型:number string boolean null undefined
复杂数据类型:object
007、null 、 true false转换成数字的值都是多少
false如果转换成一个数字的话是0
true如果转换成一个数字的话就是1
null如果转换成一个数字的话就是0
008、js中的类型转换有哪些
js中的类型转换分为:强制类型转换 隐式类型转换
强制类型转换:Number parseInt parseFloat
隐式类型转换:
算数运算符:- * / %
赋值运算符:-= *= /= %=
关系运算符:== !=
009、谈谈你对NaN的理解
a、Not a Number 不是一个数字
b、NaN仅仅代表不是数字,自身和自身都不相等(NaN != NaN)
c、如何判断NaN:isNaN===>如果是NaN,返回true,否则返回false
d、NaN的数据类型是number
010、说下i++与++i之间的区别
i++: 先使用,在加1
++i; 先加1,在使用
011、 javascript转换成false的值有哪些?
0 '' null undefined false
012、谈谈你对javascript+号的理解
1、任何字符串与加号后面的数据进行相加都会变成链接
2、如果与undefined相加得出的值是NaN
013、if判断接受的数据类型
非布尔类型的条件判断
if( 2 ) number类型 ------>所有的非0数字代表 true , 0代表false
if("abc") string类型 -------> 所有的非空字符串都代表 true, "" 代表false
if(obj) object类型 -------->所有的非null的对象都代表true,null代表false
if(undefined) -------> 代表false,
if(NaN) --------> 代表false
if( function ) ---------> 如果函数存在,代表true
014、if语句的优化
1、把次数多的条件和执行结果放到最前面
2、减少第一次无用的判断,可以用嵌套判断
3、判断语句禁止出现三次嵌套
015、谈谈你对switch的理解
1、switch的括号里面放的是一个变量
2、case相对应的值是关于这个变量的一个值
3、switch里面的这个变量和case里面这个变量不会进行隐式类型的一个转换,而是进行了恒等比较。所以一定要注意这个变量和这个case里面的值是不是一个类型
4、关于switch里面的case会有一个穿透效果,这个效果有的时候会给我们带来好处(详情请看最后一个案例),有的时候会给我们带来坏处,如果不需要这种穿透效果的时候加break
5、swicth里面如果这个变量没有匹配到case里面这个值,那么就需要返回一个信息。所以在case的末尾一定要加上一个default;这样既给用户的体验比较完美,另一方面对代码的今后维护也有很大的帮助
6、比较的值是固定值
016、if和swicth的应用场景
if :
1、具体的值进行判断
2、区间的判断
3、对运算的结果是boolean类型表达式进行判断 true flash
switch:
1、对具体的值进行判断
2、值的个数是固定的
对于几个固定的值判断,建议使用switch 语句。因为switch 语句会将具体的答案都加载进内存,效率相对高一点
基于代码的可读性:如果条件较少时,if-else容易阅读,而条件较多时switch更容易阅读
017、目前所了解的转义字符
\"
\'
\n 表示换行
\t tab键
019、三元表达式的语法
条件 ? 值1 : 值2;
020、循环的概念和意义
1、什么是循环?
重复执行某个动作或者某些语句(代码块)
2、循环有什么作用?
a、简单代码,处理重复的动作
b、一般用于遍历数组、json对象、元素集合
021、while需要注意的地方
1、初始化一个变量
2、while()括号里面是判断条件
3、除了在执行相应的代码以外还要在代码块中改变循环体的条件变量===》在{}里面改变
022、do-while循环的使用及while的区别
do-while() 无论条件是否成立至少执行一次,和while规则一样,唯一不同的是do{}while会先执行一次(先执行后判断
023、谈谈你对for循环的理解
for(第一个是:循环变量也是初始化变量;第二个是判断循环条件;第三个是改变循环变量){
....代码块
}
循环变量: 用于控制循环是否结束的变量(给变量赋初始值,只执行一次)
循环条件: 判断循环是否继续(每次都会执行)
改变循环变量:用于改变循环变量(每次都会执行)
024、while和for的区别
for循环是知道了循环次数,while是不知道循环次数
for限定了循环次数
while是条件循环
025、break和continue return的区别
continue:continue只是中止本次循环,接着开始下一次循环 ,只能出现在循环中
break:break用于完全结束一个循环,跳出循环体 不在执行break下面的代码,只能出现在switch或者循环中
return:返回函数的值,不在执行return下面的代码,只能出现函数中
026、什么是一个函数,谈谈你对函数的理解
官方解释:由事件驱动的或者当它被调用时执行的可重复使用的代码块
白话:函数就是一个方法、一个功能
027、让函数执行有哪几种方式
1、js是基于事件驱动的语言、因此可以通过js的事件来调用函数让函数执行
2、直接写函数名加()
3、立即执行函数。在字面量函数后面({}后面加())
028、定义函数的几种方式
1、关键字函数:function fnName(){};
2、字面量函数:var fn = function(){};
3、构造函数:var fn = new Function()
029、函数的作用
1、减少代码的编写(代码重复利用)
2、隐藏处理细节,便于今后的修改和维护
3、控制执行时机
030、谈谈你对参数的理解
1、参数分为:形参和实参
2、有了参数以后可以使函数变的更加灵活
3、形参和实参要一一对应
4、如果对应的形参没有传值,那么值是undefined
031、请说一下js的编译和执行
1、js的预编译:
a、把var 和 function 定义的变量提升到script的最上方
b、赋值语句不会被提升,哪怕等号后面是一个function
2、js执行:代码从上往下执行
032、简单的阐述一下js的变量声明提升
变量声明和函数声明从他们代码中出现的位置被移动到执行环境的顶部,这个过程就叫做提升 只有声明操作会被提升,赋值和逻辑操作会被留在原地等待执行
Js编译器会把变量声明看成两个部分分别是声明操作(var a)和赋值操作(a=2)