1#输出方式: 1、在控制台输出:console.log(); 2、在页面上输出:document.write();//绑定事件函数里面写了document.write()把页面上原来的HTML全部替换 3、在警告看输出:alert();//卡主整个页面
2# 变量和常量 var 变量名=值; const 常量名=值; 2、算术运算符:+ - * / % 特殊:%:模,取余
3#、数据类型: 原始类型:5个,Number、String、Boolean、Undefined、Null 引用类型:11个,Array、Function
4#、数据类型转换:
隐式转换:
算术运算符具有隐式转换:默认,转为数字,在运算
true->1
false->0
undefined->NaN
null->0
特殊:1、+运算碰上了字符串,则变为拼接
2、-*/%:字符串也能转为数字,纯数字组成的才行,包含非数字字符,则为NaN "1000"->1000 "100x0"->NaN
NaN:不是一个数字,但是确实是数字类型
缺点: 1、参与任何算术运算结果仍为NaN 2、参与任何比较运算结果都为NaN - 无法使用普通的比较运算判断x是不是NaN 解决:!isNaN(x)
强制转换: 转字符串:xx.toString();//页面上一切的数据都是字符串,所以此方法几乎很少使用 undefined和null不能使用,因为他们不能使用.操作
转数字:3个 parseInt/Float(str);//从左向右依次读取每个字符,碰到非数字字符就停止,Int不认识小数点,Float认识第一个小数点
Number(x);//完全等效于隐式转换,不会手动使用,还不如*1 /1 -0
5# Function:需要提前创建好的,以后可以反复使用的代码段 - 时机:要么程序员调用几次就执行几次,要么用户触发几次就执行几次
何时:1、不希望打开页面立刻执行 2、希望可以反复执行 3、独立的功能体 - 每一个作业(轮播、选项卡、购物车、正则验证、数据渲染...)
如何: 1、创建函数 function 函数名(形参,...){ 函数体; }
2、调用函数 函数名(实参,...); 要不要带参数的函数具体看你自己: 如果函数体是固定的,则不用 如果函数体需要根据实参的不同,进行略微不同的操作,则需要带参数的函数
6# 分支结构: 比较运算符:> < >= <= == !=
逻辑运算符: &&:全部满足,才满足 一个不满足,则不满足 ||:全部不满足,才不满足 一个满足,则满足
!:颠倒布尔值 以上的所有的运算符结果都是布尔值
if(){} if(){}else{} if(){}else if(){}else{}
7# 循环:反复执行 相同 或 相似的代码 - 时机:程序员写好的,而且几乎就一瞬间做完了,其实一次一次执行的,只不过速度很快 var 变量=几 while(条件){ 操作; 变量变化 }
for(var 变量=几;条件;变量变化){ 操作 }
死循环:while(true){} for(;;){}
退出循环:break;
8# 数组:一个内存空间,可以保存多个数据 如何: 1、创建: var arr=[]; var arr=new Array();
2、访问:arr[i]; - 下标越界:undefined
3、添加:arr[i]=新值; - 下标越界:稀疏数组,下标不连续,遍历的时候就会得到很多很多的undefined
4、arr.length:获取数组的长度 三个固定套路: 末尾添加:arr[arr.length]=新值; 获取末尾第n个元素:arr[arr.length-n]; 缩容:arr.length-=n;
5、数组三大不限制:类型、长度、下标越界(缺点)
6、遍历数组: for(var i=0;i<arr.length;i++){ arr[i];//当前元素 }
9# 位运算:
左移:m<<n,读作m左移了n位,翻译:m*2的n次方
右移:m>>n,读作m右移了n位,翻译:m/2的n次方
缺点:底数只能2
赋值运算:+= -= *= /= %= 一个操作两件事,先计算,在赋值回去。
i++;//递增:每次只会固定+1
i+=1;//累加:每次+几由我们程序员自己决定
i++ === i+=1 === i=i+1;
鄙视题:++i和i++的区别:
单独使用,放前放后无所谓,效果一样。
但是如果参与了别的表达式,变量中的值都会+1
前++返回的是加了过后的新值
后++返回的是加了之前的旧值
三目运算:简化if...else 简化if...else if...else 语法:
1、条件?操作1:默认操作;
2、条件1?操作1:条件2?操作2:条件3?操作3:默认操作;
特殊:
1、只能简化简单的分支 - 操作只能有一句话
2、默认操作不能省略
总结:
if === &&短路
if else === 三目
if else if else === 三目