javascript数据类型和变量

js是弱类型语言,支持变量声明,存在作用范围,有局部变量和全局变量之分。

1.定义变量

隐式定义:直接给变量赋值;

现实定义:使用var关键字定义变量。

 

隐式定义:

<script type="text/javascript">
    a="See me";
    alert(a);
</script>

显示定义:

<script type="text/javascript">
   var a="See me";
    alert(a);
</script>

2.类型转换

js支持自动类型转换

<script type="text/javascript">
    var a="3.125";
    var b=a-2;
    var c=a+2;
    alert(b+"\n"+c);
</script>

减号自动识别为算术运算,加号识别为字符串运算。

 

强制类型转换

toString():将布尔值,数值等转换为字符串

parseInt():将字符串,布尔值等转换为整型

parseFloat():将字符串,布尔值等转换为浮点型 

其中parseInt()和parseFloat()只能将带数字的字符串且开头是数字的数字部分转换。

<script type="text/javascript">
    var a="3.125";
    var b=parseFloat(a)+2;
   
    alert(b);
</script>

<script type="text/javascript">
    var a="cc3.125";
    var b=parseFloat(a)+2;
   
    alert(b);
</script>

 

 

3.作用域

全局变量:在全局范围(不在函数内)定义的变量,不使用var定义的变量。可以被所有脚本访问;

局部变量:在函数内定义的变量,只在函数内有效。当局部变量与全局变量同名时,局部变量会覆盖全局变量。

4.变量提升

<script type="text/javascript">
    var a="全局变量";
    function test(){
	document.writeln(a + "<br>");
		var a="局部变量";
		document.writeln(a + "<br>");
	} 
  test();
</script>

之所以发上上述情况,是因为js运行机制使得变量声明总是被解释器提升到函数体的顶部,上述程序等同于如下代码:

<script type="text/javascript">
    var a="全局变量";
    function test(){
	var a;
	document.writeln(a + "<br>");
		var a="局部变量";
		document.writeln(a + "<br>");
	} 
  test();
</script>

 

变量提升只是提升变量的声明部分,而不是提升变量的赋值部分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值