概述
JavaScript了解和认识
基本概念:
1.数据类型
基本的数据类型有5种:Undefined、Null、Boolean、Number、String
复杂数据类型:Object
其中用typeof操作符可以检测数据类型,例如:
console.log(typeof "a")//结果为“string”
//typeof得出来的结果:“undefined”、“boolean”、“string”、“number”、“object”、“function”
// 其中typeof null===''object''
(1)undefine
undefined类型只有一个值,就是undefined;当只对一个变量进行声明,但是没有对其加以初始值的时候,值就为undefined,可以用typeof检测出来;对于未声明的变量,唯一能执行的操作就是typeof,并且得出来的值也是undefined(可以使用delete删除,但是严格模式下会出错)
var name;
//var age;
console.log(typeof name)//结果为undefined
console.log(typeof age)//结果为undefined,不会报错
console.log(age)//报错
(2)null
null类型只有一个值,就是null;在逻辑角度来看,null表示空对象指针,使用typeof检测时返回object;
undefined派生自null值的,所以null==undefined
结果为true;
null和undefined有着不同的用途,没有必要显式为变量赋值为undefined,因为对于声明的变量没有赋予初始值的时候,变量的值就是undefined;但是对于null,只要在意保存对象的变量还没有真正的保存值就应该把该变量赋值为null;这样体现了null作为空指针对象的惯例,也有助于进一步区分null和undefined
(3)boolean
该类型有两个字面值true和false;
注意:javaScript区分大小写,True和Flase是标识符,不是Boolean类型
可以使用Boolean()将一个值转化为对应的Boolean值
数据类型 | 转为false的值 |
---|---|
Boolean | false |
String | " " |
Number | 0或则NaN |
Undefined | undefined |
Object | null |
其中Boolean({})结果为true
(4)Number
ECMAScript能够表示的最小数值Number.MIN_VALUE
ECMAScript能够表示的最小数值Number.MAX_VALUE
无论是整数还是浮点数,都是用number类型表示;
number类型可以表示十进制、八进制、十六进制,其中当字面值中的数字超过了范围,则前导0会被忽略,后面的数值当做十进制表示
var num1=070 //56
var num2=079 //无效的八进制,79
1、浮点数值
保存浮点数值的内存空间是保存数值的两倍,因此ECMAScript会不失时机地将浮点数转换为整数
var num1=1. //解析为1
var num2=10.0 //解析为10
对于极大或者极大的数据,可以用科学计数法
var num1=1e10 //等于100000000000
var num2=1.34e5 //等于0.0000134
在默认情况下,ECMASrcirpt会将小数点后面带有6个0以上的浮点数转换为科学计数法,如0.00000000000000045保存为4.5e-1
浮点数的精确度是17位小数
等于0.3**
2、数字范围
ECMAScript能够表示的最小数值Number.MIN_VALUE
ECMAScript能够表示的最小数值Number.MAX_VALUE
超出JavaScript表示的数值范围,则表示为Infinity(有Infinity和-Infinity),如果得到了Infinity,那么接下来计算的值都是Infinity,其中可以用isFinite()来判断一个值是否在javaScript最大值和最小值之内,是则返回true;
3、NaN
这个数值用于一个本应该返回为number的操作数结果未返回数值,
任何涉及NaN的操作最终返回结果都是NaN;NaN与任何数都不相等,包括其本身
isNaN()可以接受参数,然后尝试将这个参数使用Number()转换为数值,如果不能转换为数值则返回true;
4、数值转换
有三个函数可以将非数值转换为数值:Number()、parseInt()、parseFloat()
Number():
转换规则:
(1)Boolean,true和false分别为1和0
(2)Number,只是简单的传进和传出(十进制、八进制和十六进制都可以识别)
(3)null,返回0
(4)undefined,返回NaN
(5)String:(可以识别十进制和十六进制)
只是包含数字,则直接转换为十进制数字(前导零被忽略,识别不了八进制)
包含有效的浮点数格式,转换为对应的浮点数
包含有效的十六进制格式,转换为对应的十进制
如果字符串为“ ”,返回0
包含除上述以外的格式,全部返回NaN
(6)如果是对象,则调用对象的valueOf()方法 ,然后依照前面的规则转换返回的值。如果转换的值结果是NaN,则调用对象的toString()方法,然后在依照前面规则转换返回的字符串
一元加操作符的操作和Number函数相同
parseInt():
(1)忽略字符串前面的空格,直到找到第一个非空字符,
(2)如果第一个字符不是数字或则负号,parseInt()会返回NaN;如果是,则继续解析第二个字符,直到解析完所有后续字符串或则遇到了一个非数字字符串
(3)可以识别八进制,十进制,十六进制
根据上面的规则,其中parseInt(“”)返回NaN
parseInt()有第二个参数,为转换是使用的基数,如parseInt(“AF”,16),但是这个这个参数不能超过36,否则返回NaN,
parseFloat():
parseFloat()跟parseInt()相似,但是字符串中的第一个小数点是有效的,第二个小数点无效,第二个区别在于parseFloat()是会忽略前导的零,并且parseFloat()对于十六进制始终返回的结果是0,parseFloat()只识别十进制
(5)String
所有的字符串长度都可以通过其length属性来获取
特点:字符串是不可变的,就是说字符串一旦创建,其值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再使用另一个包含新值得字符串填充该变量
转换字符串:第一种是调用toString()方法,该方法可以传递参数作为输出数值的基数,但是null和undefined没有这个方法,第二种方法是String(),转换规则如下:
(1)如果值有toString()方法,则调用该方法并返回相应的结果
(2)如果值是null,则返回“null”,
(3)如果值是undefined,则返回“undefined”
(6)Object
对象其实就是一组数组和功能的集合,对象可以通过执行new操作符后跟创建的对象类型的名称来进行创建
object中每个实例都具有下列的属性和方法
constructor:保存着用于创建当前对象的函数
hasOwnproperty:用于检查给定的属性在当前对象实例中(而不是在实例的原型中是否存在)
isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型对象
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举,
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区相对应
toString():返回对象的字符串表示
valueOf():返回对象的字符串、数字或则布尔值表示,通常与toString()方法的返回值相同
最后
以上就是现代黄豆为你收集整理的JavaScript了解和认识的全部内容,希望文章能够帮你解决JavaScript了解和认识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复