和Java的数据类型对比理解
- Java的数据类型:byte short int lang char boolean float double
- 但是javascript中不叫数据类型,叫原始类型,一共有5个
- javascript变量的声明使用关键字 var
- string 字符串
- number 数字类型
- boolean 布尔类型,true 和false
- null
- var a = new Date();
- 获取对象的引用,null表示对象的引用时空,所有对象的引用都是object
- undefined
- 定义一个变量但是没有赋值的情况例如:
- var a ;
数据类型分类
- 数据类型
- string
- number
- boolean
- object
- function
- 对象类型
- Object
- Date
- Array
- 不包含任何值的类型
- null
- undefined
直接量
直接使用的这些数据叫做直接量
字符串(String)
特点:用引号引起来的文本
注意:
1. 这个引号既可以是单引号,也可以是双引号
2. 如果要在输出语句中输出双引号,可以把双引号放在单引号内
3. 也可以使用转义符 \
- \’ 单引号
- \” 双引号
- \n 换行
- \t 缩进
- \b 空格
- \r 回车
- \ \ 斜杠
4. + 号可以进行字符串的连接,字符串和数值类型使用+号连接,作用是连接符。
数值类型 (number)
整数,小数等一个具体的数值,
- +号进行数值连接,起到的作用的是运算符的作用
- NaN 全称:not a number 不是一个数
- 作用:用来表示数值的一种不正常的状态
布尔类型 boolean
- true
- false
//使用函数Number()把布尔值转换成number类型,true转换成1,false 是0
var a = true;
var b = false ;
var c = Number(a);
alert(typeof a);
alert(typeof c);
alert(c);//1
alert(Number(b));//0
- 用number类型转换成boolean类型,除了数字 1 可以转换成false,其他的都是true;
- 使用string类型装换成boolean类型,除了空字符串是false,其他的 都是true;
var a = "";
var b = Boolean(a);
alert(b);//false
- object类型转换成boolean是true
- 由于数组,和日期的类型都是object,所以他们的情况和 object一样
undefined
如果一个变量声明了但是没有赋值,那么就是undefined
常用的关键字 typeof() 判断数据类型
使用:
- typeof(直接量)
- typeof 直接量
isNaN 判断一个数据是不是NaN
- 如果这个数是一个非数值类型,那么返回true
- 如果这个数是一个数值类型,那么返回false
变量
问题:在浏览器中输出我们输入的内容
- 变量:用来存储数据的,定义的变量是松散型的
1. 变量的声明 使用var关键字,比如:var a
2. 给变量赋值,使用 = 号,比如 a=”234”或者a=233
3. 变量的命名规则
- 变量名只能由英文,字母、下划线、&组成,数字 不能开头
- 变量名不能使用关键字和保留字
- 关键字:已经被javascript内部使用过的
- 保留字:还没有被javascript使用,但是可能有一天会被使用
4.变量的类型:给变量存储的是什么类型 ,变量就是什么类型的变量。
数据类型转换
强制转换
转换成number
- Number()
- 如果转换的内容可以转换成数字,那么就直接转换成数字
- 如果不可以就直接返回NaN
- 如果在内容中出现小数,那么小数位会保留
- 如果内容为空,那么转换成0
parseInt()
- 如果转换的内容可以转换成数字,那么就直接返回这个内容对应的数字
- 不过不可以返回NaN
- 如果带有小数,会直接去掉小数位
- 如果第一个字符是数字,会继续解析到结束,或者碰到不是数字的字符
//使用Number() 转换成number类型 var b = "34"; b = Number(b); alert(typeof(b)); //使用parseInt() 转换成number 类型 var c = "34"; c = parseInt(c); alert(typeof c);
- parseFloat() 转换成小数
- Boolean() 转换成布尔类型,除了下面几种情况是false,其他都是true
var a = "";
a= Boolean(a);
console.log(typeof a);
- 布尔值 false
- 空字符串 var a = “”;
- undefined
- NaN
- null
- Number()
隐式转换
转换成number类型
- 使用基本的算数运算符都可以将字符转换成数字
//使用基本的算数运算符,将字符串转换成number类型 var a = "234"; a = +a ; console.log(a); console.log(typeof a); var b = "232"; b = b -1; console.log(b); console.log(typeof b); var c = "322"; c = c * 2; prompt(c); prompt(typeof c); var b = "232"; b = b /1; console.log(b); console.log(typeof b); var b = "232"; b = b %2; console.log(b); console.log(typeof b);
- 使用基本的算数运算符都可以将字符转换成数字
- 隐式转换成字符串String
- 加上空字符串
//转换成字符串只需要和 空字符串相加就可以
var n = 1223;
n = n +"";
console.log(n);
console.log(typeof n);
- 加上空字符串
转换成boolean类型
- 使用感叹号!
// 隐式转换成boolean类型使用感叹号 !,一个感叹号表示false var m = 3323; m = !m; console.log(m); console.log(typeof m); //两个感叹号表示true var m = 3323; m = !!m; console.log(m); console.log(typeof m);
- 使用感叹号!
各种类型的构造函数
- 使用constructor 属性查看
- 猜想:每一种数据类型的变量内部都是调用了一种构造方法创建的
- underfined 没有构造函数
- null 引用为空的变量没有构造函数
- NaN 的数据类型是number ,有构造函数Number()
var arr = new Array();
var a = new Date();
var c = 133;
function add(){}
var duixiang = new Object();
alert(c.constructor);//function Number() { [native code] }
alert("hawh".constructor);//function String() { [native code] }
alert(true.constructor);//function Boolean() { [native code] }
alert(add.constructor);//function Function() { [native code] }
alert(arr.constructor);//function Array() { [native code] }
alert(a.constructor);//function Date() { [native code] }
alert(duixiang.constructor);//function Object() { [native code] }
- -