java script是一个运行在客户端,浏览器端的(弱类型)(解释型)(面相对象)脚本语言。
- 解释型:运行前不需要检查语法是否正确,而是直接运行,报错后停止后续代码
- 若类型:变量的保存的数据是随意的,数据的类型由数据决定
- 面相对象:还没有学习
如何使用Js
方法1:在script标签中直接书写js代码 方法2:在script标签中直接引入js文件
输出方式
- 三种
- 第一种:在控制台打印输入的日志console.log('你想要输出的内容')
- 第二种:在页面输出decument.write('你想要输出的内容')
- 第三种:在浏览器警告框中输出 alert('你想要输出的内容')
变量和常量
- 变量:创建后值可以再次修改
- 创建方式:var 变量名=值
- 常量:创建后不允许修改
- 创建方式: const 常量名=值
数据类型有哪些
- number-数字,可以有无限个
- ”string“-字符串,可以有无限个
- boolean-布尔值,有两个,一个是true(真/对)一个是false(假/错)
- null-空,null的值只有null
- undefined-翻译过来的意思只有一个,就是未定义,undefined的取值只有一个,那就是undefined
运算符 + - * / %
- 特殊
- % 俗称模,不取两个数相除的商,而取余
- 作用:可以判断奇偶数。任意数%2=0 偶数
-
任意数%2!=0 奇数 -
还可以取出某个数的后面几位数 console.log(1234%10); 得最后一位4 -
console.log(1234%100); 得最后两位34 -
console.log(1234%1000); 得最后三位234
运算符带有隐式转换,默认将左右两边都转为数字,再运算
- true->1
- false->0
- undefined->NaN
- null->0
- '100'->100
- '100px'->NaN 确实可以将字符串转为纯数字,但是必须是纯数字组成的字符串,否则则为NaN
- NaN,不是一个数字,但是数字类型
- NaN参与任何算术运算都是NaN
- NaN参与任何算术比较都为false
关系/比较运算符(带有隐式转换) > < >= <= != == === !==
- 何时使用:一般都出现于分支结构中,通过条件满不满足,走不同的路线
- 结果一定是一个布尔值 true或者false
- 特殊点1:
- 如果参与比较的两边【都是】一个字符串!则会按位PK每个字符的十六进制unicode号(十进制ASCII码)
- 特殊点2:!isNaN(X);专门用于判断NaN而存在,结果一定是一个布尔值
-
true,这是一个有效数字 -
false,是一个NaN - 特点3:
- undefined==null;的结果为true
- 解决:===,全等:不带隐式转换的等值比较,要求数据相同,值也要相同
逻辑运算符
- &&与、并且
- ||或者
- !颠倒布尔值
- !true->false
- !false->true
赋值运算符 = += -= *= /= %=
-
=是赋值符号,将右边的东西保存到左边的变量名中 -
i=i+1等于i+=1
自增自减运算符 ++ --
- 特点:每次只能+1
- 特殊:分为前++和后++
-
前++返回的是加了之后的新值 -
后++返回的是加了之前的旧值
位运算:
- 左移:m<<n,读作m左移了n位,翻译:m*2的n次方
- 右移:m>>n,读作m右移了n位,翻译:m/2的n次方
- 垃圾:底数只能是2,不可以修改!
第二天学习
分支结构
1、程序的流程控制语句:3种
1、顺序结构 - 默认:从上向下依次执行每一句话
2、分支结构 - 通过条件判断,选择部分代码执行
3、循环结构 - 通过条件判断,选择要不要重复执行某块代码
if分支
- if(条件//age>=18){//如果age>=18
- 操作//console.log('你已经成年了') //那么在控制台显示输入日志”你已经成年了“,如条件没达成,则执行下一个操作
- }else if(){}
- else if(){}
- else {}
switch...case分支(建议用于死循环)
- switch(变量/表达式){
- case 1://值1
- console.log();//操作1
- case 2://值2
- console.log();//操作2
- break;}//打断,如果不添加,在满足一个case之后,会将后续所有操作都做完.
- default:
- console.log()
- }
三目运算(纯粹就是为了简化(简单的)分支结构)
语法:
扩展:短路逻辑:条件&&(操作); === if...
条件?操作1:默认操作; === if...else...
条件1?操作1:条件2?操作2:默认操作; === if...else if...else
强制数据类型转换
转字符
- 方法一:var str=x.to string();X不能是undefined和null,会报错
- 方法二:var str=string(x);等效于隐式转换,不如使用+”“
转数字
- 执行原理:从左向右依次读取每个字符,碰到非数字字符就停止转换,如果一来就不认识则为NaN,不认识小数点
- parseint(str/num)//num可以去小数点
- parsefloat(str)
- var num=Number(x)等效于隐式转换,不如使用x*1 x/1 x-0
转布尔
- console.log(Boolean(0));Boolean(x);//万能的,任何人都可以转为布尔,完全等效于隐式转换,其实Boolean()就是隐式转换的底层原理,还不如 !!x
- 只有6个会为false:0,"",undefined,null,NaN,false - 其余的全部都是true
第三天学习
循环结构:反复执行 相同 或 相似的操作
- 循环三要素:
1、循环条件:开始 - 结束,循环的次数
2、循环体:你要做的操作
3、循环变量:记录着我们当前在哪一次,而且他会不断的变化,变化往往都是向着不满足循环条件前进的
3种循环
while循环: var i=1; while(i>=1000){console.log('你想要输出的内容');i++} while如果想要死循环:while(true或者1){}
for循环 for(i=1;i>=1000;i++){ console.log('你想要输出的内容')} 如果for想要死循环: for(;;){}
do...while循环(垃圾) do...while和while循环的区别,区别只看第一次,如果第一次条件都满足那么没有区别,如果第一次条件不满足do ...while至少会执行一次,而while一次都不会执行
Function:函数,也称之为方法,先预定义好,以后可以反复使用的代码段。
使用方法:1:function 函数名(){ 代码段} 2:调用函数,在html页面上绑定事件
任何元素都可以绑定带参数的函数
-
function zhazhiji(fruit){
-
console.log("正在榨汁"+fruit+"汁")}
-
fruit("黄瓜");
-
fruit("茄子");
-
fruit("梨子");
-
fruit("耦");
-
fruit("鱼腥草");