变量常量和数据类型以及数据类型的转换

一、定义变量

1、定义变量
a=3;
b=10;		//ES5严格模式就不能再使用,

var x=3;	//var不能少
/*
	window对象是可以省略不写的,早期没有变量(window.a=3;相当于a=3;),目前明确定义一个变量,
	这个变量仍属于window的属性,ES6时var就不再属于window下的属性了。
*/
2、变量的命名
  • 变量的命名是字符,数字,下划线,$组成,首字母不能是数字,区分大小写
  • 变量命名遵守驼峰式命名, 例:getStringName 第一个单词首字母小写,后面每个单词首字母大写
  • 当定义临时变量或者函数的参数时,变量使用下划线起头_width
  • 变量定义时不能使用关键词和保留字,例:var if=3;
  • 变量名称起名时要注意不能与window对象下的属性或者方法同名

二、定义常量

1、定义常量
const a=3;		//ES6才有,常量的值不能改变
2、常量的命名
  • 常量命名时全大写字母,使用下划线区分单词
    const COL_NUM=10;

三、数据类型

基础数据类型
1、字符型 String
var a1="abc";	//双引号不能嵌套双引号
var a2='abc';
var a3=`5 `; 		//ES6新增
var a4="\u4eoo" ; 	//ES6双引号中可以放入utf-8的编码;
2、数值型 Number
var a1=100;		//整数
var a2=10.23;	//浮点数
var a3=3.2e+5;	//科学计数法(3.2e+5等价于3.2*10的5次幂)
var a4=0xff;	//16进制数
var a5=045;	//8进制数,ES6中废弃
var a6=0b100;	//二进制数
var a7=NaN;	//属于数字类型,但不是一个数字
3、布尔型 Boolean
var a1=true;	//表示真,在计算机中以1的形式存储
var a2=false;	//表示假,在计算机中以0的形式存储
4、未定义类型 Undefined
var a1;
var a1=undefined;
5、空型 Null
var a1=null;

Undefined和Null的区别:Undefiend表示声明变量但没有给变量赋值,Undefiend转换为数值是NaN,Null表示这里有一个值,只不过这个值是空值,必须给变量赋值为Null时才是Null,Null转换为数值是0。

复杂数据类型
对象型 Object
var obj={a:1,4:true,c:"qwe"};	//key:value	键值对
//键只能时字符型或者Symbol型(ES6新增),如果键不是字符型会自动转换为字符串;值可以时任意类型。
函数 function
数组 Array

四、数据类型的转换

1、转数值型
  • 通过Number构造函数,强制转换为数值
Number("123");	//整体转换
Number("a123");	//如果字符串是由数字构成,强转后将会变为数值,否则变成NaN
Number(true);	//1
Number(false);	//0
  • parseInt()
parseInt("123a");	//一位一位的转换,直到遇到字母或者小数点停止
parseInt("12.3");	//可以用来取整
parseInt("ff",16);	//可以根据字符串的进制来转换成十进制数值
  • parseFloat()
parseFloat("10.213")	//可以保留小数
parseFloat("10.213.23")	//遇到第二个小数点时会停止

parseInt()和parseFloat()转换布尔值结果为NaN

2、转字符串型
  • String()
String(20);		//"20"
String(true);	//"true"
  • n.toString()
var a=123;
a.toString();	//"123"  此方法不能转换布尔型,会报错
a.toString(2);	//数值型转字符串型时,里面的值代表进制,将数值按照进制转换为字符串
  • n.toFixed() 数值型转字符串型
var a=123.567;
a.toFixed(2);	//默认参数时0,允许参数为0-20之间,表示保留小数点后几位
//保留时会自动四舍五入,但是值为负数时会出现BUG。
  • n.toExponential() //科学计数法
var n=1e+3;
n.toExponential();	//大于1时 "1e+3"

var n=0.1e+3;
n.toExponential();	//小于1时 "1e+2"
  • n.toPrecision() //科学计数法
var n=1e+2;
n.toPrecision();	//"100"
3、转布尔型

Boolean()

Boolean(0);
Boolean("");
Boolean(NaN);
Boolean(false);
Boolean(undefined);
Boolean(null);

只有以上六种情况为false,其他都为true。

4、转对象型

Object()
将对象转换成 数值是NaN,将对象转换成字符串是[object Object]

扩展:string,number,boolean,undefined,null 都是存在内存的栈中,object是存在内存的堆中,存储在栈中的数据读取速度快,但是栈中可以存储的数据较小,堆中可以存储大量的数据,但是读取速度慢。
所有的基础类型都是基于Object构建而成。

var a=5;//数值    number   这种类型会存储在栈中   typeof   number
var b=new Number(5);//数值对象   Number  会存储在堆中  typeof object
number可以理解为Number类型在栈中的映射

五、获取数据的基本类型

typeof

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值