JavaScript数据类型和强制类型转换(一)
在学习数据类型和强制类型转换之前我们先来了解一下JavaScript
- 什么是JavaScript:
JavaScript是世界上最流行的编程语言。这门语言额、可用于HTML和web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
JavaScript是脚本语言,是一种轻量级的编程语言、是可插入HTML页面的编程代码,JavaScript插入HTML页面后,可由所有的现代浏览器执行。JavaScript是所有现代浏览器以及HTML5中的默认脚本语言。
- 如何使用:
HTML中的脚本必须位于<script>与</script>标签之间。
脚本可放置在HTML页面的<body>和<head>部分中
- <script>标签
如需在HTML页面中插入JavaScript,请使用<script>标签。
以<script>开始</script>结束,
两者之间的代码行包含了JavaScript,浏览器会解释并执行位于这两者之间的JavaScript。
- <head>或<body>中的JavaScript
我们可以在HTML文档中放入不限数量的脚本,脚本可位于HTML的<body>或<head>部分中,或者同时存在于两个部分中。
但是我们一般把函数放在<head>部分中,或者放在页面底部。这样就可以把它们安置到同一位置,不会干扰页面的内容。
- 外部的JavaScript
我们也可以把脚本保存到外部文件中,外部文件通常包含被多个网页使用的代码。外部JavaScript文件的文件扩展名是.js。如需使用外部文件,请在<script>标签的”src”属性中设置该.js文件。
注意:外部文件不能包含<script>标签。
二、字面量与变量:
- 字面量:不可改变的值,可直接使用但一般不会直接使用。
- 变量:可保存字面量、值可任意改变,通过关键字var声明。
3、标识符:JS中所有的可以由我们自主命名的, 例如:变量名 函数名 属性名都属于标识符
命名一个标识符是需要遵守如下规则:
1.标识符中可以含有字母、数字、_(下划线)、$
2.标识符不能以数字开头
3.标识符不能使用ES中的关键字与保留字
4.标识符一般都采用驼峰写法{不建议用中文}
- JavaScript 6种数据(字面量)类型:
(1)、基本数据类型与引用数据类型
基本数据类型:String Number Boolean Null Undefined 引用数据类型:Object
JS中的变量都是保存在栈内存中的
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在的,修改一个变量不会影响到其他的变量
对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟新的空间。而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当其中一个通过变量修改属性时,另外一个也会受到影响。
基本数据类型 :
String 字符串
Number 数值
Boolean 布尔值 true/false
Null 空值
Undifined 未定义
引用数据类型:
Object 对象
-String 字符串:
在JS中字符串需要使用引号引起来
使用单引号或双引号都可以,但是最好不要混用
注意引号的嵌套问题。
\转义字符:
当表示一些特殊符号的使用时可用\进行转义 例如 \n 表示换行、 \n 表示换行。
- Number 数值类型 :
JS中所有数值(包括整数和浮点(小数)数)都是Number类型
若表示的数字超过了最大值则会返回 Infinity 表示正无穷大
-Infinity 表示负无穷大
使用typeof(用于检查变量类型)检查Infinity也会返回Number
Nunber.MAX_VALUE 表示数值的最大值1.7976931348623157e+308
67
-Boolean 布尔类型:
主要用来做逻辑判断
true 表示真
- false 表示假
-Null 空值:
值只有一个null,这个值专门用来表示一个空对象
使用typeof检查一个null值时,返回一个object
-Undefined未定义:
值只有一个undefined
声明一个变量但是未给变量赋值时,它的值就是undefined
使用运算符typeof检查Infinity来检查一个变量类型
语法:typeof 变量
四、强制类型转换(类型转换主要指,将其他的数据类型转换为 String Number Boolean)
①将其他的数据类型转换为String类型
方法一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响原变量,它会将转换的结果返回
- 注意:null和undefined这两个值没有toString()方法,如果调用该方法程序会报错
方法二:
- 调用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数做强制类型转换时,对于Number Boolean实际上
是调用的toString()方法。但是对于null和undefined,
就不会调用toString()方法。
它会将null直接准换为"null"(字符串)
它会将undefined直接准换为"undefined"(字符串)
var a=123;var b=a.toString();==》var a=123;var b=String(a);
强制转换成字符串和调用 toString() 方法的唯一不同之处在于,对 null 和 undefined 值强制类型转换可以生成字符串而不引发错误:
69
②将其他数据类型转换为Number类型
使用Number()函数
- 字符串-->数字
1.如果是纯数字的字符串,则可以直接转换为数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
- 布尔值-->数字 true准换为1 false转换为0
- null-->数字 0
- undefined-->数字 NaN
用法 |
结果 |
Number(false) |
0 |
Number(true) |
1 |
Number(undefined) |
NaN |
Number(null) |
0 |
Number("1.2") |
1.2 |
Number("12") |
12 |
Number("1.2.3") |
NaN |
Number(new object()) |
NaN |
Number(50) |
50 |
第二种方式:
- 这种方式专门用来对付字符串类型
- parseInt() 把一个字符串转换为一个整数
- parseFloat() 把一个字符串转换为一个浮点数
parseInt(num)可以将一个字符串中的有效整数内容取出来然后转换为Number;
parseFloat(num)则可以获取有效的小数。
③其他数据类型转换为Boolean类型
使用Boolean()函数
- 数字 -->布尔 除了0和NaN是false,其余的全部都是true
- 字符串-->布尔 除了空串是false,其余的全部都是true
- null 和undefined都会转换为false
- 对象也会转换为true
68