JS是一种动态类型以及弱类型的语言
指变量的数据类型可以在程序的执行过程中发生变化。
变量在申明的时候不需要指定数据类型,
变量的类型是根据保存的数据决定的。
数据类型
- 基本数据类型:
- 数字型
- 字符串型
- 布尔型:
true
,false
- 复合数据类型:
- 对象类型
- 特殊数据类型:
-
null
:null
-
undefined
:undefined
-
number类型:
数字型分为两种:一种叫做整数型,一种叫做浮点型(小数
)。
对其他语言来书,严格区分整数型与浮点型的,JS
不一样,JS
里面严格意义上来说没有整数型,整数是使用浮点型保存的。
浮点数本身具有不精确性,所以使用浮点数的计算要小心。
64位
- 第
1
位:符号位,(0为正,1为负。
) - 第
2
位到第12
位:指数位 - 第
13
位到64
位:精确位
(JS里面能够正确的表示15位的整数。
)
Math.pow()
实现数学的次方运算,第一个是基数,第二个参数是次方
例如:math.pow(2,4)=16。
(Math.random()随机数
)
JS
可以通过两个常量
获取出来JS数字
的最大值
与最小值
(常量就是不会发生变化的量
)
Number.MAX_VALUE
Number.MIN_VALUE
科学计数法
874.548 = 8.74548*10^2
0.000020202 = 2.20202*10^-5
123e3 = 123*10^3
123e-3 = 123*10^-3
Infinity
Infinity
无穷大
-infinity
无穷小
无穷大等于无穷大,无穷大计算的是值也遵循无穷原则。
当Infinity-infinity=NaN
NaN:not a number
不是一个数字,但是NaN
是数字类型的量,typeof NaN:number
NaN是不等于NaN的,
在数学计算出错的时候就会出现NaN ,所以当看到NaN的时候就要检查自己的代码。
进制表示法
类型前缀:
0b
前缀表示二
进制:0b010011010
0o
前缀表示八
进制:0o5412344
0x
前缀表示十六
进制:0xffff5454
0
前缀表示十
进制:默认的是十进制
parseInt
格式化一个字符串转化为整型,从左向右依次转化,直到遇到不是数字的字符停止,包括小数点。如果转化的是一个纯字符
串,或者第一个不是数字或小数点,那么返回的结果为NaN(不是一个数字)。
ParseInt也可以将小数转化为整数,没有四舍五入,小数点后面的全部舍弃。
第一个参数是字符串或者数字,就是要转化的量,
第二个参数是进制数(2,4,8,16,32)。不能大于32.表示前面的数字或者两是按照这个进制表示的。
ParseInt(‘1001011101’,2)表示前面的数是二进制数;
ParseFloat()将字符串转化为浮点型(小数型),如果要转化的数字是一个整数,并且没有传递第二个参数,那么结果还
是这个整数。
NaN 不等于NaN,他也不等于任何数,isNaN:判断某一个量是不是NaN,如果是返回true,不是返回false。
IsFinite
判断一个数字是否是有限的
如果是准确的数字,那么返回true
如果是NaN,或者Infinity或者-Infinity返回的false。
boolean 布尔值
里面只有两个值,一个是真true
,一个假false
,也可以理解为数学里面的0
和1
的关系,他描述的关系是非此即彼的关系。常用语判断,返回的都是布尔值。
取反符号:!;
改变布尔值的真假,取相反的意思。如果使用了!
号,那么返回的值一定是一个布尔值。
=(等于号)全解
=:赋值号
==:判断符号,返回的是一个布尔值,要么就是true,要么就是false,判断两边的数据类型书否相等。
===:全等判断,返回一个布尔值,要么就是true,要么就是false,但是判断的是两边的值以及数据类型是否一致。
布尔值的转化
Null
数据类型只有做一个值,就是null
null
数据的产生都是直接赋值为null
。
Undefined
数据类型也只有一个值,就是undefined
.
Undefined
的产生分为四种:
1. 一个申明了未赋值的变量就是undefined;
2. 函数的参数没有传递,赋值的时候,函数的内部使用的时候就是undefined;
3. 函数没有返回值但是调用调用函数返回结果的时候,这个结果就是undefined;
4. 对象的某一个属性没有赋值;
大部分情况下null
与undefined
是一个意思,只有在转化为数字的时候不一样。
Console.log(Number(null));//0
Console.log(Number(undefined));//NaN
语义上理解,null
表示空,没有东西,undefined
表示未定义;
字符串
定义一个字符串必须要使用引号,单引号与双引号都可以,但是引号不能嵌套同一种引号,引号不能包含同一个类型的引号,可以包含不同类型的引号;但是可以使用转义字符让他实现同类包含;
注意:字符串定义的时候只能在一行定义,不能敲换行符号;但是加`\`可以实现,后面直接回车,不能加
空白字符换行,换行之后的字符串要顶格写;
转义字符(\
):作用就是改变后面字符原来的意思;和HTML的实体字符有点意思。
字符串与数组
Length
的属性:(知道数组内部有多少个元素;
)
var al = [1,2,3,5,6,7,8,99];
al.length = 8;
al[7]= 99;
al[length-1]=99;
字符串和数组一样也具有一个叫length
的属性,这个属性表示的是字符串的长度,也包括空白字符;
字符串也可以通过下标的方法获取出某一个位置的字符;
遍历字符串:
for循环
for(var I =0;i<str.lenght;i++){
console.log(str[i]);
}
弹窗
alert()
: 提示框 属于BOM
系统函数以及用户直接定义的函数都是属于window
对象的,而window
对象是属于BOM
的顶层对象,document
是DOM
的顶层对象。confirm()
:确认弹框,当点击确定的时候返回的结果是true
,点击取消的时候返回的是false
直接关闭也是false
;confirm
一般用于判断里面,确认之后的操作是否执行。prompt()
获取用户的输入;返回的是用户输入的内容,但是这个内容是字符串类型的;