JavaScript诞生于1995年,它的出现主要是用于处理网页中的前端验证。
所谓的前端验证,就是指检查用户输入的内容是否符合一定的规则。
比如:用户名的长度,密码的长度,邮箱的格式等。
JS代码需要写到script标签中
alert:控制浏览器弹出一个警告框
document.write()可以向body中输出一个内容
console.log()的作用是向控制台输出一个内容
Document
Document
你也点一下?
你也点一下?
JS代码:alert("我是外部JS文件中的代码")
JS注释:分单/多行注释,注释中的内容不会被执行,但是可以在源代码中查看。
单行注释: // 注释内容
多行注释: /*注释内容/
字面量:都是一些不可改变的值。比如1,2,3。字面量都是可以直接使用,但是我们一般都不会直接使用字面量。
变量:可以用来保存字面量,而且变量的值是可以任意改变的,变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,而很少直接使用字面量。可以通过变量对字面量进行描述。
数据类型:指字面量的类型。在JS中一共有六种数据类型:
1.在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
var a= 123;
//数字123
var b=123
//字符串123
可以运用一个运算符 typeof 来检查一个变量类型
2.js中可以表示的最大的数字:Number.MAX_VALUE(1.7976931348623157e+308)
如果使用Number表示的数值超过最大值,则会返回一个 Infinite 表示正无穷
3.js中可以表示的无穷小:Number.MIN_VALUE(5e-324)
如果使用Number表示的数值小于最大值,则会返回一个 0
4.NAN 是一个特殊数字,表示 not a number
使用 typeof 检查 infinite 和 nan 时都会返回一个 number
5.在js中整数的运算基本可以保证精确
如果使用js进行浮点数运算,可能得到一个不精确的结果
布尔值只有两个:
true(逻辑真)
false(逻辑假)
Null 类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
注意:使用typeof检查null时返回的是 object
Undefined 类型的值也只有一个,就是undefined
当不给一个变量赋值时,他的值就是undefined
注意:使用typeof检查undefined 时返回的也是undefined
强制类型转换 指的是将一个数据类型强制转换为其他的数据类型
类型转换主要指的是,将其他数据类型,转换为:string / number / boolean
将其他数据类型转换为 string
方法一:调用被转换数据类型的toString()
该方法不会影响到原变量,它会将转换的结果返回
注意:null和undefined 这两个值没有 toString() 方法
方法二 : 调用String()函数,并将被转换的数据作为参数传递给函数
使用 String() 函数做强制类型转换时,对于我们的Number 和Boolean 实际上就是调用 toString() 的方法
但是对于 null 和 undefined ,就不会调用 toString() 的方法,他会直接将 null 直接转换为"null"(将 undefined 直接转换为 " undefined ")
方法一:调用Number() 函数
将string转换为number
1.如果该字符串是纯数字,则直接将其转换为数字
2.如果该字符串含有非数字内容,则转换为NaN
3.如果该字符串是空字符串或者全是空格的字符串,则转换为0
其余三种基本数据类型的 Number 转换结果:
**方法二:**parseInt() 和 parseFloat()
parseInt() 把一个字符串转换为一个整数(可以利用这个方法取整数)
parseInt() 可以将一个字符串中有效的整数内容取出来然后转换为Number
parseFloat() 把一个字符串转换为一个浮点数
parseInt() 可以将一个字符串中有效的浮点数内容取出来然后转换为Number
可以在 parseInt() 中传递第二个参数,来指定数字进制
如果对非 string 使用 parseInt() 和 parseFloat() 它会先将其转换为 string 然后再操作
**方法:**使用 Boolean() 函数
1.我们如果将Number 转为Boolean 时,除了 0 和 NaN 是false,其余的都是true
2.我们如果将String 转为Boolean 时,除了空串是 false,其余的都是true
3.Null 和 Undefined 转换为 Boolean 时,都是 false
4.对象也会转换为true
通过运算符可以对一个或多个值进行运算,并获取运算结果
比如:typeof 就是运算符,可以获得一个值的类型,它会将该值的类型以字符串的方式返回(number string boolean undefined boject)
ber 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)
任何值与NaN 做运算都得NaN
1.如果对两个字符串进行加法运算,则会做拼串(将两个字符串拼接在一起,并返回)
2.任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串操作
3.可以利用 ② 的特点,来将任意的数据类型转换为String,只要给该数据 +“” 即可,实际上也是调用 String() 函数
当对非 number 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)
任何值做 - * / 运算时都会自动转换为Number
可以利用这一特点进行类型转换(-0 *1 /1)
只需要一个操作数
当对非 number 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)
+正号
-负号
类似于 一元运算符中的 + 正号
自增
自增分两种:
1.先++(++a)即先自增再赋值
2.后++(a++)即先赋值再自增
自减
类似于 自增
js含有三种逻辑运算符
!非
对一个值进行非运算
1.如果对布尔值进行非运算,则会对布尔值进行取反
2.如果对非布尔值进行非运算,则会将其转换为布尔值,再进行布尔值取反
3.可以利用该特点,来将一个其他的数据类型转换为布尔值(取反两次,即 !!)
&& 与(且)
类似 c
1.如果两个值都为 true ,则返回后边的值
2.如果两个值都为 false ,则返回前面的值
①②用短路逻辑理解,第一个值为true则返回第二个值,第一个值为false则返回第一个值
如果第一个值为 true ,则返回第一个值
如果第一个值为 false ,则返回第二个值
如果关系成立它会返回 true ,如果关系不成立则返回 false
对非数值进行比较时,会将其先转换为数字在进行比较
1.任何值与 NaN 进行任何比较,返回值都是false
2.如果两边都是字符串,比较的是字符串的字符编码 Unicode(ASCII码)
3.字符串的比较是一位一位的进行比较,如果两个一样才进行下一位的比较
注意:在比较两个字符串型色数字时,一定一定一定一定要转型
用来比较两个值是否相等
如果相等返回 true ,如果不等返回 false
用 == 来表示相等运算
用 ! = 来表示不等运算
注意:如果使用 == 或 ! = 来比较两个值时,如果类型不同,则会自动进行类型转换,将其转换为相同的类型
1.如果将 Undefined 与 Null 进行比较则会返回 false
2.NaN不与任何值相等,包括他本身
如果要判断一个变量是否为 NaN
可以引用 isNaN() 函数
=== :全等(不会进行自动进行类型转换,如果两个值不等,则直接返回false,如果两个值相等,则直接返回true)
! == :不全等(不会进行自动进行类型转换,如果两个值不等,则直接返回true,如果两个值相等,则直接返回false)
语法:
条件表达式 ? 语句1 : 语句2
条件运算符在执行时,首先对条件表达式进行求值
1.如果该值为true,则执行语句1,并返回执行结果
2.如果该值为false,则执行语句2,并返回执行结果
注意:如果条件表达式的求值结果为非布尔值,那么会将其转换为布尔值然后再进行运算