<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
/*
数据类型指的就是字面量的类型
--一共六种类型
string 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
前五种是基本数据类型,object是引用数据类型
*/
/*
string 字符串
- 在js中字符串需要引号引起来
- 单引号双引号都可,但不能混着用
- 引号不能嵌套,需要使用的时候只能使用单双嵌套
- 确实需要使用输出单引号双引号时。利用\作为转义字符
- \n是换行,\t是制表符
*/
var str = 'helloWorld';
console.log(str);//正常输出
// var str1 = "我说:"今天天气真不错"";//不正常,错误写法
var str2 = '我说:"今天天气真不错"';//正常
var str3 = "我说:\"今天天气真不错\"";//正常
/*
在js中所有的数值都是Number类型
包括整数和浮点数
js中表示的数字最大值,超过最大值返回infinity,返回类型也为number
Number.MAX_VALUE
NaN
-表示not a number,返回类型也为number
js中的整数的运算基本可以保证准确,但小数运算可能返回的不精确结果
-因此尽量不在js中使用精确度高的运算
*/
// 数字123
var a = 123;
// 字符串123
var b = '123';
/*
为了区分数据类型,可以使用一个运算符
typeof
-检查变量类型
*/
console.log(typeof (a));
/*
Boolean 布尔值
-布尔值只有两个,true为真,false为假
*/
/*
Null类型的值只有一个,就是null
表示一个空对象,检查null的类型返回object
*/
/*
Undefined类型的值只有一个,就是undefined,未定义
表示声明了一个变量但未赋值,检查undefined的类型返回undefined
*/
/*
强制类型转换
- 指将一个数据类型强制转换为其他的数据类型,string Boolean number
-
*/
/*
将其他数据类型转换为String
方式一:tostring()
- 调用被转换数据的tostring()方法,该方法不会影响原变量(调用该方法覆盖原值除外),只是一个返回值
- 但是注意null undefined这两个值没有此方法
方式二:
- 调用string()函数,并将被转换的数据传递给函数
- 对number和boolean实际上任然是调用tostring()
- 对null和undefined是直接转换
*/
var a = 123;//此时为数值123
//调用a的tostring()方法
//调用xxx的yyy()方法,就是xxx.yyy()
a.toString();
console.log(a);//此时仍为数值123
console.log(typeof (a));//number
console.log(a.toString());//此时为字符串123
console.log(typeof (a.toString()));//string
//调用string()函数
String();
b = 456;
console.log(b);//数值123
console.log(typeof (b));//number
console.log(String(b));//字符串123
console.log(typeof (String(b)));//string
/*
将其他数据转换为number
方式一:
-使用Number()函数
字符串-->数字
1.如果是纯数字,则直接转换成数字
2.只要有非数字,转换为NaN
3.字符串是一个空串或空格,转换为0
布尔值-->数字
1.true->1
2.false->0
null-->数字0
undefined-->NaN
方式二:
- 这种方式专门用来对付字符串
- parseInt()函数将一个字符串中的有效整数内容取出来然后转换为number
- 只取开头的整数
- parseFolat()函数取得是有效的小数(包括整数)
*/
/*
将其他的数据类型转换为布尔值
- Boolean()
- 数字-->布尔值
- 除了0和NaN,其余的都是true
- 字符串-->布尔值
- 除了空串其他均为true
- null和undefined都会转换为false
- 对象也为true
*/
/*运算符
1.typeof(),将数据类型以字符串形式输出
2.+
- 对两个数值加法运算,返回数值
- 对两个字符串加法运算会进行拼串操作
- 任何值和字符串加法运算,都会转换为字符串再进行拼串操作
- 可以利用此特点,将任意的数据类型转换为string
- 只需要将需要转换的数据+一个""即可,隐式类型转换
- 除了加法是转换为字符串,减法,乘法,除法等其他操作均隐式类型转换为number类型
*/
var a = '你好';
var b = '帅哥';
console.log(a + b);//输出你好帅哥
var str = "人生若只如初见" +
"何事秋风悲画扇";
console.log(str);
var c = 123 + '真不错';
console.log(c);//输出123真不错
var result = 1 + 2 + "3";
console.log("result = " + result);//返回33,注意这种用法以及log的写法,类型为字符串
var result1 = "1" + 2 + 3;
console.log("result1 = " + result1);//返回123,类型为字符串
var result2 = 100 - '1';
console.log("result2 = " + result2);//返回99,类型为数字
//隐式类型转换
var d = 123;//数值123
d = d + "";
console.log(typeof (d));//返回为string
d = d - 0;
console.log(typeof (d));//返回为number