字面量、变量、常量

  1. 概念
    字面量 : 字面量就是一个值,比如变量的值或者常量的值. 比如字符、字符串、数字等等
    变量 : 定义完成后,可以修改的数据
    常量 : 定义完成后,固定且不能改变的数据

  2. 变量
    ① 概念 : 变量可以用来保存字面量,而且变量的值是可以任意改变的
    ② 定义变量 : 在js中使用var关键字来声明一个变量

    var 变量名称;
    var num;
    var intro;
    var age;
    var sex, gender;
    

    ③ 变量初始化
    ⑴ 先定义后初始化

    var age;
    age=10;
    

    ⑵ 定义的同时初始化

    var sex="girl";
    

    ④ 变量的默认值
    如果变量初始化没有赋值,则里面存储的是undefined

    var kai;
    console.log(kai); // undefined
    

    ⑤ 同时声明多个变量

    ⑴ 方法一

    var name, age, sex;
    name = "kai";
    age = 22;
    sex = "boy";
    

    ⑵ 方法二

    var name="kai",age,sex="男";
    

    ⑥ 内存中的表现形式

    第一步 :申请一块内存空间,名字叫做name

    第二步 :向此内存空间赋值

    ⑦ 变量命名规则和规范

    "use strict";
    /*
    "use strict" 的目的是指定代码在严格条件下执行。
    严格模式下你不能使用未声明的变量。
    */
    

    ⑴ 概念
    规范 : 必须要遵循,不遵循则报错
    规范 : 建议遵循,不遵循不会报错

    ⑵ 命名规则
    由字母、数字、下划线、$符号组成,不能以数字开头
    不能是关键字和保留字,例如if、for、break
    区分大小写

    ⑶ 命名规范
    变量名最好见名知意
    遵守驼峰命名法
    Ⅰ小驼峰 除第一个单词之外,其他单词首字母大写。常用于函数名。
    Ⅱ 大驼峰 把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。

    ⑷ 补充
    Ⅰ 关键字
    ECMA-262 定义了 ECMAScript 支持的一套关键字(keyword)。
    这些关键字标识了 ECMAScript 语句的开头和/或结尾。根据规定,关键字是保留的,不能用作变量名或函数名。
    break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with
    Ⅱ 保留字
    ECMA-262 定义了 ECMAScript 支持的一套保留字(reserved word)。
    保留字在某种意思上是为将来的关键字而保留的单词。因此保留字不能被用作变量名或函数名。
    abstract、boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto、implements、import、int、interface、long、native、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile
    ⑧ 面试常考

  3. 常量
    在ES6之前并没有声明常量的方法,在ES6中新增加了const来定义常量
    建议常量的命名全部大写,如果由多个单词构成,可以使用下划线割开

     const PI=3.14;const MY_BLOG="https://blog.csdn.net/KaiSarH";
    

    PI、MY_BLOG为常量,3.14、"https://blog.csdn.net/KaiSarH"为字面量

  4. 总结
    ① 常量和变量的区别
    常量与变量的存储方式是一样的,只不过常量需要有初始值,而且值不允许被修改,而变量可以无初始值,且可以多次赋值
    ② 常量与字面量的区别
    常量与字面量均不会被改变,常量为存储数据的容器,而字面量为等号右侧的值,字面量是由字符串、数字等构成的字符串或数值

数据类型

  1. 概念
    程序在运行过程中会产生各种各样的临时数据,为了方便数据的运算和操作,JavaScript对这些数据进行了分类,提供了丰富的数据类型

  2. 数据类型划分
    ① 简单数据类型 : Number、String、Boolean、Undefined、Null
    ② 引用(复杂)数据类型 : Object

  3. 数据类型查看 : typeof 操作符 会将检查的结果以字符串的形式返回

  4. 简单数据类型
    ⑴ Number
    ① 在JS中所有的数值都是Number类型(整数和小数)
    ② 由于内存的限制,ECMAScript并不能保存世界上所有的数值
    最大值 : Number.MAX_VALUE
    最小值 : Number.MIN_VALUE
    无穷大 : Infinity 如果超过了最大值就会返回该值
    无穷小 : -Infinity 如果超过了最小值就会返回该值

    console.log(typeof Infinity)   //number
    console.log(typeof -Infinity)   //number
    

    ③ NaN非法数字(Not A Number)
    JS中当对数值进行计算时没有返回结果,返回NaN

    var num=NaN;
    console.log(num)    //NaN
    console.log(typeof num) //number
    

    ④ 使用注意
    在JS中整数的运算可以保证得到精确的结果

    var counter=120+20;
    console.log(counter); //140
    

    在JS中浮点数的运算可能得到一个不精确的结果,开发中一般要取一个小数位数

    var counter=100.1+20.1;
    console.log(counter); //120.1999999999999
    

    ⑵ String
    ① 字符串由单引号或双引号括起

    //正常情况
    var str1="huan";
    var str2='kai';
    var str3=`是哦`;   //ES6中模板字符串
    console.log(typeof str1);   //string
    console.log(typeof str2);   //string
    console.log(typeof str3);   //string
    

    ② 使用字符串注意事项
    不能一单一双,必须成对出现
    相同引号不能嵌套,不同引号可以嵌套
    给变量加上引号,那么变量将会变成字面量
    ⑶ Boolean
    ① 概念
    布尔型也被称作逻辑值类型或者真假值类型,只能够取真(true)和假(false)两种数值

    var bool1=true;
    var bool2=false;
    console.log(typeof boole1)  // boolean
    console.log(typeof boole1)  // boolean
    

    ②虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值
    任何非零数值都是true,包括正负无穷大,只有0和NaN是false
    任何非空字符串都是true,只有空字符串是false
    任何对象都是true,只有null和undefined是false

    ③ 案例

    var bool1=Boolean(0);
    console.log(bool);  //false
    var bool2=Boolean(1);
    console.log(boo2);  //true
    var bool3=Boolean(-1);
    console.log(boo3);  //true
    var bool4=Boolean("hello");
    console.log(boo4);  //true
    var bool5=Boolean("");
    console.log(boo5);  //false
    var bool6=Boolean(undefined);
    console.log(boo6);  //false
    var bool7=Boolean(null);
    console.log(boo4);  //false
    

    ⑷ Null和Undefined
    ① Undefined是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined

    var str;
    console.log(str);   //结果是undefined
    

    ② undefined是Undefined类型的字面量
    undefined和168、"kai"一样是一个字面量
    Undefined和Number、String一样是一个数据类型
    typeof对没有初始化和没有声明的变量都会返回undefined

    var str1=undefined;
    var str2;
    console.log(typeof str1);   //undefined
    console.log(typeof str2);   //undefined
    

    ③ Null类型也是只有一个值的数据类型,这个特殊的值是null
    从语义上看null表示的是一个空的对象,所以使用typeof检查null会返回一个object

    var str3=null;
    console.log(typeof str3);   //object
    

    ④ undefined值实际上是由null值衍生出来的,所有如果比较undefined和null是否相等,会返回true

    var str4=null;
    var str5=undefined;
    console.log(str4==str5);  //true
    console.log(str4===str5);    //false
    
  5. 引用(复杂)数据类型 : object 存储与堆区

数据类型转换

  1. 小技巧 : 谷歌浏览器,快速查看数据类型
    打印出来 : 字符串、数值类型、布尔类型的颜色都是蓝色的,undefined和null是灰色的

  2. 转换成字符串类型
    ⒈toString()
    ①常规使用

    var num1=132;
    car res1=num1.toString();
    console.log(res1);  //123
    console.log(typeof res1);   //stringvar num2=false;
    var res2=num2.toString();
    console.log(res2);  //false
    console.log(typeof res2);   //string
    

    ②使用注意
    ⑴该方法不会影响到原变量,它会将转换的结果返回

    var num3=123;
    var res3=num3.toString();
    console.log(typeof num3);   //number
    console.log(typeof res3);   //string
    

    ⑵数值类型调用toString()方法,可以携带一个参数,输出对应进制的值

    var num4=10;
    console.log(num4.toString(2))   //1010
    console.log(num4.toString(8))   //12
    console.log(num4.toString(10))  //10
    console.log(num4.toString(16))  //a
    

    ⑶null和undefined没有toString()方法,调用会报错

    var num5=undefined;
    var num6=null;
    console.log(num5.toString())
    console.log(num6.toString())
    


    ⒉String()
    有些值没有toString()方法,此时可以使用String().比如: null和undefined
    使用注意:
    ① null和undefined,就i不会调用toString()方法,而是直接转成字符串

    var n1=null;
    var s1=String(n1)
    console.log(s1);    //null
    console.log(typeof s1)  //stringvar n2=undefined;
    var s2=String(n2)
    console.log(s2);    //undefined
    console.log(typeof s2)  //string
    

    ② 对于Number和Boolean类型的数据,String()相当于调用toString()方法.

    var n3=20;
    var s3=String(n3);
    console.log(s3);    //20
    console.log(typeof s3); //stringvar n4=false;
    var s4=String(n4);
    console.log(s4);    //false
    console.log(typeof s4); //string
    

    ⒊拼接字符串方式
    ①常规使用
    任何数据和+" "连接到一起都会转换为字符串
    内部实现原理和String()函数一样
    ②使用注意

    var n1=10010;
    var s1=n11+"";
    console.log(s1);    //10010
    console.log(typeof s11);    //stringvar n11=10010;
    var s11=n11+"100";
    console.log(s11);   //10010100
    console.log(typeof s11);    //stringvar n2=undefined;
    var s2=n2+"";
    console.log(s2);    //undefined
    console.log(typeof s2); //stringvar n3=null;
    var s3=n3+"";
    console.log(s3);    //null
    console.log(typeof s3); //stringvar n4=true;
    var s4=n4+"";
    console.log(s4);    //true
    console.log(typeof s4); //string
    
  3. 将其他类型转换为Number类型
    ⒈字符串转数字
    ① 如果是纯数字的字符串,则直接将其转换为数字

    var s1="10010"var r1=Number(s1);console.log(r1);    //10010console.log(typeof r1)   //number
    

    ②如果字符串为空或者是一个全是空格的字符串,则转换为0

    var s2=""
    var r2=Number(s2);
    console.log(r2);    //0
    console.log(typeof r2)  //numbervar s3="     "
    var r3=Number(s3);
    console.log(r3);    //0
    console.log(typeof r3)  //number
    

    ③如果字符串中有非数字的内容,直接转换为NaN

    var s4="156kai"var r4=Number(s4);console.log(r4);   //NaNconsole.log(typeof r4) //number
    

    ⒉布尔转数字
    true转成1,false转成0

    var b1=true;
    var m1=Number(b1);
    console.log(m1);    //1var b2=false;
    var m2=Number(b2);
    console.log(m2);    //0
    

    ⒊null和undefined转数字
    null转数字为0,undefined转数字为NaN

    var s1=null;
    var n1=Number(s1);
    console.log(n1);    //0var s2=undefined;
    var n2=Number(s2);
    console.log(n2);    //NaN
    
  4. parseInt()函数 & parseFloat()函数
    ⒈使用意义
    Number()函数无论字符串中是否存在有效整数都会直接返回NaN
    例用parseInt()和parseFloat()可以提取字符串中的有效整数和浮点数
    ⒉parseInt()
    ①有两个参数,第一个参数是要转换的字符串,第二个参数是要转换的禁止
    ②从第一个有效数字开始,直到遇到无效数字
    ③如果第一位不是有效数字,直接返回NaN
    ④使用

    var s1="10rem";
    var r1=parseInt(s1);
    console.log(r1);    //10var s2="200X300";
    var r2=parseInt(s2);
    console.log(r2);    //200var s3="kai007";
    var r3=parseInt(s3);
    console.log(r3);    //NaNvar s4="";
    var r4=parseInt(s4);
    console.log(r4);    //NaN
    

    ⒊parseFloat()
    ①不支持第二个参数,只能解析十进制
    ②如果解析的内容里只有整数,则只解析成整数
    ③如果第一位不是有效数字,则直接返回NaN
    ④从第一位有效数字开始,直到遇到无效数字
    ⑤使用

    var s5="10.5rem";
    var r5=parseFloat(s5);
    console.log(r5);    //10.5var s6="10.5.6.7.8rem"
    var r6=parseFloat(s6);
    console.log(r6);    //10.5
    

    ⒋使用注意
    对非String使用parseInt()或parseFloat(),会先将其转换为String类型然后再操作.使用

    var s7=false;
    var r7=floatInt(s7);
    console.log(s7);    //NaN
    
  5. +和-0运算符
    添加+号,不会修改数据的正负性
    使用

    var s1="12306";
    var r1=+s1;
    console.log(r1);    //12306
    console.log(typeof r1); //numbervar s2="1.01";
    var r2=+s2;
    console.log(r2);    //1.01
    console.log(typeof r2); //numbervar s3="20rem";
    var r3=+s3;
    console.log(r3);    //NaN
    console.log(typeof r3); //numbervar s4=true;
    var r4=+s4;
    console.log(r4);    //1
    console.log(typeof r4); //numbervar s5=false;
    var r5=+s5;
    console.log(r5);    //0
    console.log(typeof r5); //numbervar s6='700';
    console.log(+s6);  //700
    console.log(-s6);   //-700
    console.log(s6-0);  //700
    console.log(typeof (s6-0))  //number
    
  6. 转成布尔类型
    Boolean()
    0 空字符串 null undefined NaN会转换成false
    其他都会转换成true

    console.log(Boolean(0));   //false
    console.log(Boolean('')); //false
    console.log(Boolean(null)); //false
    console.log(Boolean(undefined));    //false
    console.log(Boolean(NaN));  //false
    console.log(Boolean(-1));   //truevar str='kai'
    var num1=123;
    var num=-1;
    console.log(Boolean(str));  //true
    console.log(Boolean(num1)); //true
    console.log(Boolean(num2)); //true
    

运算符

  1. 分类
    ① 按照功能划分
    算术运算符、位运算符、关系运算符、逻辑运算符
    ②按照操作数个数划分
    单目运算、双目运算、三目运算

  2. 运算符的结合性
    ①JavaScript中各种运算符的结合性分为两种,左结合性(自左至右)和右结合性(自右至左)
    ②自左至右 即先左后右
    例如 : x - y + z
    ③自右至左 即先右后左
    例如 : x = y = z = 10

  3. 算术运算符
    加法运算
    注意 : 非Number类型的值进行运算时,会将这些值转换为Number然后再运算
    任何值和NaN做运算都得NaN
    任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作

    减法运算
    注意:非Number类型的值进行运算时,会将这些值转换为Number然后再运算
    任何值和NaN做运算都得NaN
    字符串做减法也会转换为Number

    乘法运算
    注意:非Number类型的值进行运算时,会将这些值转换为Number然后再运算
    任何值和NaN做运算都得NaN
    字符串做乘法也会转换为Number

    除法运算

    //特殊情况
    var res = 100/0;
    console.log(res);   //Infinity
    

    注意:非Number类型的值进行运算时,会将这些值转换为Number然后再运算
    任何值和NaN做运算都得NaN
    字符串做除法也会转换为Number

    取余运算
    ⑴ 格式 : Number1 % Number2
    ⑵ m%n 求余,相当于m/n获取余数
    Ⅰ. n=0 返回NaN
    Ⅱ. m=0 结果为0
    Ⅲ. m>n 正常求余
    Ⅳ. m<n 结果为m
    ⑶ 注意: 非Number类型的值进行运算时,会将这些值转换为Number然后再运算
    任何值和NaN做运算都得NaN
    字符串做取余也会转换为Number

一元运算符

  1. +:对于非Number类型的值,会先将其转换为Number,然后再运算
  2. -:对数字进行取反

赋值运算符

  1. = :变量 = 数据
  2. 赋值运算符左边只能是变量
  3. 多个赋值运算符可以组成赋值表达式,赋值表达式具有右结合性
  4. += :加后赋值 变量+=表达式 如果a+=1 即a=a+1
  5. -= : 减后赋值 变量-=表达式 如果a-=1 即a=a-1
  6. *= : 乘后赋值 /= :除后赋值 %=:取模后赋值
  7. 复合赋值表达式运算 :格式 变量 复合赋值运算符 表达式
    如:a*=1+2
  8. 由于赋值运算符是右结合性,所以会先计算等号右边,然后再进行复合运算

自增/自减运算符

  1. 后缀表达式:x++、x --先用x的当前值作为表达式的值,再进行自加减操作。即:先用后变。
  2. 前缀表达式:-- x、++x先完成变量的自加减操作,然后再用x的值作为表达式的值。即:先变后用。

逻辑运算符

  1. A&&B 与运算:一假则假
    注意: 对非Boolean类型的数值,逻辑与会自动将其转换为Boolean类型来判断
    如果条件A不成立,则返回条件A数值本身
    如果条件A成立,不管条件B是否成立,都返回条件B数值本身
  2. A||B 或运算:一真则真
    true||alert("13") //并不会输出true
    

    注意:对非Boolean类型的数值,逻辑或会自动将其转换为Boolean类型来判断
    如果条件A不成立,不管条件B是否成立,都返回条件B数值本身
    如果条件A成立,则返回条件A数值本身

  3. !A 非运算:真变假,假变真
    注意:对一个非Boolean值进行操作,会将其转换成布尔值,然后再取反。
    因此,想将其他类型转换为boolean,除了Boolean()函数,还可以使用!!数值;

关系运算符

序号 运算符 结合性
1 > 大于 左结合
2 < 小于 左结合
3 >= 大于等于 左结合
4 <= 小于等于 左结合
5 == 判断值是否相等 左结合
6 != 判断值是否不相等 左结合
7 === 判断值和类型是否相等 左结合
8 !=== 判断值和类型是否不相等 左结合

注意:①对于非数值进行比较时,会将其转换为数值然后再比较。
②如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而是分别比较字符串中字符的Unicode编码。

逗号运算符

  1. 在JavaScript中,“,”也是一种运算法,称为逗号运算符。其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。
  2. 一般形式 :表达式1,表达式2,…,表达式n
  3. 求值过程:先算表达式1,再算表达式2,…,依次算到表达式n
  4. 整个逗号表达式的值是最后一个表达式的值

三目运算符

  1. 格式:条件表达式?语句1:语句2;
  2. 求值规则:
    如果条件为真,则执行语句1,并返回执行结果
    如果条件为假,则执行语句2,并返回执行结果
  3. 条件运算符?和:是一对运算符,不能分开单独使用
    如果条件表达式的求值结果是一个非布尔值,会将其转换为布尔值然后再运算。

运算符的优先级

  1. JavaScript中,运算符的优先级共15级,1级最高,15级最低
  2. 在表达式中,优先级较高的先于优先级较低的进行运算
  3. 优先级相同则左结合运算
  4. 可以使用()改变优先级
运算符 描述
() 表达式分组
++ – - ~ ! 一元运算符
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= 小于、小于等于、大于、大于等于
== != === !=== 等于、不等于、严格相等、非严格相等
& 按位与
^ 按位异或
ιι 按位或
&& 逻辑与
ι 逻辑或
?: 条件
= += -= *= /= %= 赋值运算符
, 多重求值

练习:用户从键盘输入三个整数,找到最大值并输出

// 用户从键盘输入三个整数,找到最大值并输出
// 1. 定义变量
var num1,num2,num3,max;
// 2. 接收用户输入
num1 = Number(prompt('请输入第一个数字:'));
num2 = parseInt(prompt('请输入第二个数字'));
num3 = +(prompt('请输入第三个数'));
// 3. 比较
max = num1>num2?num1:num2;
max = max>num3?max:num3;
alert(max)

执行结果:



Javascript:基础语法相关推荐

  1. javascript基础语法——表达式

    前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...

  2. javascript基础语法——词法结构

    前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javasc ...

  3. web前端学习:1分钟了解JavaScript基础语法规则

    俗话说,"无规矩不成方圆".用在计算机语言上也同样使用.每种计算机语言都有自己的语法规则,只有遵循语法规则才能写出符合要求的代码.JavaScript也不例外,在使用JavaScr ...

  4. html5扩展函数的使用方法,知识分享:JavaScript基础语法

    知识分享:JavaScript基础语法 原创 mb5fd868d58f1472021-01-22 16:52:56©著作权 阅读数 41 ©著作权归作者所有:来自51CTO博客作者mb5fd868d5 ...

  5. 【Javascript基础语法】第五周预习博客

    Javascript基础语法 前言 一.初识JavaScript 1.JS是什么 2.作用 3.浏览器执行js简介 4.Js组成 二.JS的引入方式 1.行内式 2.内部引入 3.外部引入 三.js语 ...

  6. 前端技术学习第三讲:JavaScript基础语法

    JavaScript基础语法 JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但是它也被 ...

  7. JavaScript基础语法(一)

    目录 前言 js变量 数据类型 数据类型转换 传送门 --> JavaScript基础语法(二).JavaScript之数组与函数(三).JavaScript之对象(四).JavaScript阶 ...

  8. RUNOOB JavaScript 基础语法

    JavaScript 基础语法 JavaScript 的特点: JavaScript是一种动态类型.弱类型.基于原型的解释型脚本语言 动态类型:变量在声明时不需要声明类型,在运行时根据被赋值类型进行转 ...

  9. JavaScript作业1(实验1:Javascript基础语法)

    1.判断今年是否闰年. <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

  10. JavaScript 基础语法循环案例练习

    JavaScript 基础语法循环案例练习 文章目录 JavaScript 基础语法循环案例练习 前言 一.早午晚安喵喵喵 二.判断奇偶数 三.班长请客 四.1-100跳过个位为3的数求和 五.第几个 ...

最新文章

  1. iframe 有那些缺
  2. jquery为图片添加事件
  3. python读取有中文文件时的报错处理
  4. excel分类_Excel数据处理学习(七)使用分类汇总
  5. 三种Target Encoding方式总结
  6. 读取 classpath 资源
  7. robotframework 常用关键字
  8. 写出漂亮代码的七种方法
  9. 纯CSS打造的Family tree(族谱)
  10. etcd官方推荐的硬件配置
  11. “霸王级”寒潮来袭 通信业紧急部署确保网络安全
  12. 《InsideUE4》GamePlay 架构(二)Level 和 World
  13. php 指定时间之前,php计算给定时间之前的函数用法实例
  14. Spring AOP执行方法
  15. php开发pdf,使用PHP编写PDF(PDFLib)
  16. 2020年度博客之星发榜了,第一次参加,第70名,感谢给我投票的老铁们,2021继续努力!
  17. 论文的格式: 以Wiley为案例
  18. mybatis mybatis的resultType详解
  19. ant design pro v2 - 权限控制
  20. PAT日志 1035

热门文章

  1. 3.nginx 的基本配置与优化
  2. 42. 添加 Expires 头(3)
  3. 20.HTTP-NG
  4. 1. WordPress 安装
  5. MVC项目实践,在三层架构下实现SportsStore,从类图看三层架构
  6. DDOS 攻击工具
  7. corntab主调度脚步
  8. 多线程总结之旅(1):线程VS进程
  9. HDU/HDOJ 1800 Flying to the Mars 搜索
  10. django实例:创建你的第一个应用投票系统(3)后台管理