学习的javascript知识

52 阅读5分钟

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("鱼腥草");