您的位置:首页 > Web前端 > JavaScript

JavaScript基础笔记(二)

2020-02-01 09:40 501 查看

这个系列记录之前学习JS基础的一些知识点和笔记,希望会对一些刚开始学习JavaScript的入门者有用,若有错误与不当之处欢迎指出与纠正!!!

十一 算术运算符
任何值和NaN做运算,结果都为NaN。
加法运算符:非Number类型的值进行加法运算时,会将这些值转换为Number然后在运算,和数值类型做加法会强制转换成数字类型;但是不管什么数据类型(即使是数字类型),和字符串做加法运算会强制转换成字符串,然后做拼接。
减法(乘法)运算符:非Number类型的值进行运算时,会将这些值转换为Number然后在运算;但是数字类型和字符串做减法(乘法)运算时,会将字符串转换成数字然后进行数字运算。
除法和减法类似,但是分母不能为0
取余运算%:m%n,n=0时返回NaN;M=0时返回0;m>n正常返回求余结果;m<n时返回分子m的值;
十二 一元运算符:正负运算符(数值类型转换)
 正号:对原有的数字不产生任何影响
负号:负负得正的影响
 对于NaN(非Number类型)的值,会将其转换成Number,然后再运算。(把运算子自动转为数值)
十三 赋值运算符
简单赋值运算符:赋值是在栈区,给每个变量都分配一个空间,放置值。
var num=100; var value=num; num=90:
console.log(num)//90; console.log(value)//100;间接赋值的结果是把值拷贝一份赋给变量。
多个赋值运算符可以组成赋值表达式,赋值表达式具备右结合性(从右至左计算);

复杂赋值运算符:var a=100; a+=10; console.log(a)//110 加法,减法,乘法…由右往左计算。
十四 自增运算符 自减运算符
i++ ++i; i-- --i; 对自身做一个运算
x++,x–:先用x的当前值作为表达式的值,再进行自增自减运算,即”先用后变“,先把当前值输出,再进行自增自减运算。
++x,–x:先完成变量的自增自减运算,再把x的值作为表达式的值,即“先变后用”,先做自增自减运算,再把运算后的结果作为值输出。
十五 关系运算符
 对于非数字进行比较关系运算时,会将其转换为数字然后再比较
如果符号两侧的值都是字符串时,不会将其转换成数字进行比较,而会分别比较字符串中字符的Unicode编码;
null == 0//false;在比较之前没有转换null的数值类型,所以是错误;
null = null // true undefined = = undefined // true
NaN == NaN//false;
为了验证变量是不是一个数:var num=NaN; isNaN(num);//TRUE
null= =undefined;//true ; 相等运算符会报告两者相等(但是Number()转换函数转出来的值不一样)
123==“123”;true 把值作比较
123===“123”;false 值和类型都做比较
十六 逻辑运算符
&& “”与“”
|| “”或“”
! “”非“”

  1. “与”运算符短路写法:(7>3)&& alert(“hahahahah”);程序会执行后面的alert(“hahahahah”);结果会弹出一个消息框。还有例如:true && alert(“hahahahah”)(非主流写法)
    注意事项:var result=123&&”abc”; console.log(result);// =abc
    a 对于非boolean类型的数值,逻辑与会自动将其转换为boolean类型来判断;
    b 如果条件A不成立。则返回条件A的数值本身;
    c 如果条件A成立,不管条件B成不成立都返回条件B数值本身;
    var result= null&& 0;console.log(result);//结果会返回null,因为null都为假了,不会再往后执行,会返回null的值。
  2. “或”运算符短路写法:(3>7)&& alert(“hahahahah”);程序也会执行后面的alert(“hahahahah”);结果会弹出一个消息框。还有例如:true && alert(“hahahahah”)(非主流写法)
    如果写(13>7)&& alert(“hahahahah”);程序不会执行后面的alert(“hahahahah”);因为前面已经为真了 ,不会执行后面的程序了
    注意事项:
    a 对于非boolean类型的数值,逻辑与会自动将其转换为boolean类型来判断;
    b 如果条件A不成立。不管条件B成不成立都返回条件B数值本身;
    c 如果条件A成立, 则返回条件A的数值本身;
  3. “非”:真变假,假变真;
    对一个值进行两次取反,他不会变化;(可以用两个”!!”来将一个数据转换成布尔类型,其和Boolean()函数是一样的)
    对非布尔值进行元素,则会将其转换成非布尔值,然后再取反;
    十七 逗号运算符
    表达式1,表达式2,表达式3,…… 表达式n
    逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n;
    整个逗号表达式的值是最后一个表达式的值
    十八 三目运算符
     格式:条件表达式?语句1:语句2;条件运算符?和:是一对运算符,不能分开单独使用。如果条件的表达式的求值结果是一个非布尔值,会将其转换为布尔值,然后再运算。
     好处:简化if-else的代码;弊端:必须有一个确定的结果。简单的用三目,复杂的用if。
    如果条件表达式为true,则执行语句1,并返回执行结果;如果条件表达式为false,则执行语句2,并返回执行结果
    true ? alert(“语句1”):alert(“语句2”);弹第一个
    false? alert(“语句1”):alert(“语句2”);弹第二个
    十九 小练习1
    定义3个变量,接受用户输入的值
    var num1,num2,num3;
    利用prompt()接受用户输入的值
    num1=prompt(“请输入第一个数”);
    num2=prompt(“请输入第二个数”);
    num3=prompt(“请输入第三个数”);
    定义变量保存最大值
    var max;
    利用三目运算符进行两两比较
    max= num1>num2 ? num1 : num2;
    max=max>num3?max:num3;
    输出结果
    alert(max);
    十九 JS流程控制
    为了方便控制程序的运行流程,JS提供了三种流程结构,不同的流程结构可以实现不同的运行流程,者3中流程结构分别是顺序、选择、循环三种基本控制结构构造。
    If switch 循环 while循环 do while循环 for循环
    顺序结构:默认结构,按照书写顺序从上至下执行每一条语句
    选择结构:对给定的条件进行判断,再根据判断结果来决定执行那一段代码
    循环结构:在给定条件成立的情况下,反复执行某一段代码
    二十 if
     在正常判断语句会有问题的时候,要思考可不可以反着来:比如:
    if(age>18)
    {console.log(“成年人”);}
    else if(age>25)
    {console.log(“中年人”);}
    else if(age>50)
    {console.log(“老年人”);}
    else
    {console.log(“未成年”);}
    这个时候如果输入大于18的值,总会出现成年人,即使时大于25或者50这种;如果换成以下的写法则可以:
    if(age<18)
    {console.log(“未成年”);}
    else if(age<25)
    {console.log(“成年人”);}
    else if(age<50)
    {console.log(“中年人”);}
    else if
    {console.log(“老年人”);}
    If上下有范围限制的时候的写法:var age=10;
    if(age>5) {
    if(age<20)
    {console.log(age)}
    }
  • 点赞
  • 收藏
  • 分享
  • 文章举报
Jiang_29k 发布了39 篇原创文章 · 获赞 0 · 访问量 394 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: