Java script 字面量与变量
一、
- 字面量:不可改变的值,可直接使用但一般不会直接使用。
- 变量:可保存字面量、值可任意改变,通过关键字var声明。
3、标识符:JS中所有的可以由我们自主命名的, 例如:变量名 函数名 属性名都属于标识符
命名一个标识符是需要遵守如下规则:
1.标识符中可以含有字母、数字、_(下划线)、$
2.标识符不能以数字开头
3.标识符不能使用ES中的关键字与保留字
4.标识符一般都采用驼峰写法{不建议用中文}
二、JavaScript 6种数据(字面量)类型:
其中基本数据类型 :
String 字符串
Number 数值
Boolean 布尔值 true/false
Null 空值
Undifined 未定义
引用数据类型:
Object 对象
String 字符串:
在JS中字符串需要使用引号引起来
使用单引号或双引号都可以,但是最好不要混用
注意引号的嵌套问题。
\转义字符:
当表示一些特殊符号的使用时可用\进行转义 例如 \n 表示换行、 \n 表示换行。
Number 数值类型 :
JS中所有数值(包括整数和浮点(小数)数)都是Number类型
若表示的数字超过了最大值则会返回 Infinity 表示正无穷大
-Infinity 表示负无穷大
使用typeof(用于检查变量类型)检查Infinity也会返回Number
Boolean 布尔类型:
主要用来做逻辑判断
true 表示真
- false 表示假
Null 空值:
值只有一个null,这个值专门用来表示一个空对象
使用typeof检查一个null值时,返回一个object
Undefined未定义:
值只有一个undefined
声明一个变量但是未给变量赋值时,它的值就是undefined
三、强制类型转换(类型转换主要指,将其他的数据类型转换为 String Number Boolean)
①将其他的数据类型转换为String类型
方法一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响原变量,它会将转换的结果返回
- 注意:null和undefined这两个值没有toString()方法,如果调用该方法程序会报错
方法二:
调用string()函数,并将被转换的数据作为参数传递给函数
使用string()函数做强制类型转换时,对于number Boolean实际上是调用的to String()方法
它会将null直接转换为“null”(字符串)
它会将under find直接转换为“under fined”(字符串)
3.2 将其他类型转换为Number
使用Number()函数
- 字符串——数字
- 如果是纯数字的字符串,则可以直接转换为数字
- 如果字符串中有非数字的内容,则转换为NaN
- 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
- 布尔值——数字
True转换为1 false转换为0
- null——数字0
- Undefined——数字Nan
第二种方法:
- 这种方法专门对付字符串类型
- Parse int()把一个字符串转换为一个整数
- Parse float()把一个字符串转换为一个浮点数
3.3将其他类型转换为Boolean
使用Boolean()函数
- 数字——布尔 除了0和Nan是false,其余的全部都是true
- 字符串——布尔值 除了空串是false,其余的全部都是true
- Null和undefined都会转换为false
- 对象也还会转换为true
- 对象也会转换为true
- Java script运算符 (通过运算符可以对一个或则多个值进行运算,并获取运算结果)
运算符也叫操作符
算数运算符
+ 加
可以对两个值进行假发运算,如果是两个字符串则进行字符串拼接
任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼接操作
也可以通过“+”完成隐式转换。
-减
可以对两个值进行减法运算,并返回运算结果
同级运算,从左到右
*乘
可以对两个值进行乘法运算,并返回运算结果
/除
可以对两个值进行除法运算,并返回运算结果
- 任何值做 - * / 运算时自动转换为number
- 可以利用这一特性完成隐式转换
%取模
取模运算(取余数)
++ 自增
--自减
六.Java script逻辑运算符
三种逻辑运算符
- !非
!可以用来对一个值进行非运算
非运算就是对一个布尔值进行取反操作
False变为true,true变为false
如果对一个值(布尔值)进行2次非运算,它的值不变
如果对非布尔值进行运算,则先将它转换为布尔值,再取反操作。利用这一特点,可以将一个值转换为布尔类型;两次非运算
- &&与
&&可以对符号进行两则的值进行运算并返回结果
运算规则:两个值只要有一个false,则返回false
两个值都是true的情况下,返回true
JS中“与”只要第一个为false,则返回false
- ||或
||可以对符号两则的值进行或运算并返回结果
运算规则:两个值主要有一个true,则返回true
两个值都是false的情况下,返回false
JS中“或”,只要第一个为true,则返回true。不会再去检查第二个值
七.Java script赋值运算
=赋值符
可以将符号右侧的值赋值给左侧的变量
+=
num+=2 =>等价于 num=num+2;
-=
num-=2 =>等价于 num=num-2;
*=
num*=2 =>等价于 num=num*2;
/=
num/=2 =>等价于 num=num/2;
%=
num%=2 =>等价于 num=num%2;
- 关系运算符:
> 大于
>= 大于等于
< 小于
<=小于等于
运算的结果为布尔值
- 相等运算符:
== 表示相等的意思
!= 表示不等的意思
=== 全等(数据类型与值都相等)
!== 不全等
运算的结果为布尔值
- 条件运算符(三元运算符):
语法:条件表达式?语句1:语句2;
执行的流程:
条件运算符在执行时,首先对表达式进行求值。
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回执行结果
- 运算符的优先级(跟数学的一样先乘除 再加减 有括号先算括号里面的)
算术操作符 → (关系运算符)比较操作符 → 逻辑操作符 → "="赋值符号
(+,-,*,/,++,--,%) (<,>,==,===,<=,>=,!=) (&&,||,!) (=,+=,-=,..)
- 流程
程序中的三种基本流程结构:
1. 顺序结构
2. 分支结构
3. 循环结构
顺序结构:按照顺序一条一条的执行代码,从上到下。
分支结构:执行代码的时候,可以根据条件进行选择,条件越多对应的结果越多,分支也就越多。例如if…else…语句,switch语句
循环语句:用来重复不断的做一件事,for循环,while循环,do…while循环
- 对象
看到的值除基本数据类型(String 字符、Number 数值、Boolean 布尔、Null 空值、Undefined 未定义)外都为Object 对象。如果我们使用基本数据类型,可以将一个人的信息保存下来,但是他们是独立的没有联系的数据。
对象属于一种复合的数据类型,在对象中可以存储多个不同数据类型的属性
对象的分类:
1.内建对象
- 由ES标准中定义的对象,在任何ES的实现中都可以使用
例如:Math String Number Boolean Function Object...
2.宿主对象
- 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
- 比如:BOM(浏览器对象模型) DOM(文档对象模型)
例如 我们常用的console.log() 就是DOM 中的对象
3.自定义对象
- 由咱们开发人员自己定义的对象
创建对象:用new调用的函数时构造函数constructor
var obj=new Object();
构造函数是专门用来创建对象的函数
在对象中保存的值称为属性:
向对象添加属性的语法: ①对象.属性名=属性值 ② 对象["属性名"]=属性值
读取对象属性的语法: ①对象.属性名 ②对象["属性名"]
- 注意:如果对象中没有的属性,不会报错而是返回undefined
*对象的属性值可以是任意的数据类型
属性名:
对象的属性名不强制要求遵守标识符规则,什么名称都可以,但是不允许这里使用,我们自己定义的使用都必须遵守标识符规则
in运算符:
通过该运算符检查一个对象中是否含有指定的属性。如果含有则返回true,如果没有则返回false .
语法 :"属性名" in 对象
- 基本数据类型与引用数据类型
基本数据类型:String Number Boolean Null Undefined 引用数据类型:Object
JS中的变量都是保存在栈内存中的
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在的,修改一个变量不会影响到其他的变量
对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟新的空间。而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当其中一个通过变量修改属性时,另外一个也会受到影响。
- 对象字面量
1.创建一个对象
var obj=new Object();
2.使用对象字面量来创建一个对象
var obj={};
使用对象字面量,可以在创建对象时,直接指定对象中的属性
语法:{属性名1:属性值1,属性名2:属性值2,...}
对象字面量的属性名可以加引号,也可以不加,建议不加
如果要使用一些特殊的属性名,则必须加上引号(不允许使用"123"这种)
属性名与属性值是一组键值对结构,
键与值之间用":"冒号连接,对个键值对之间使用","逗号隔开
如果一个属性之后没有其他的属性了,就不要写","逗号