how2j.cn


工具版本兼容问题
基本数据类型
undefined,Boolean,Number,String,null

关键字 简介 示例代码
undefined
声明了但未赋值
示例代码
Boolean
布尔
示例代码
Number
数字
示例代码
String
字符串
示例代码
var
动态类型
示例代码
typeof
变量类型判断
示例代码
null
空对象/对象不存在
示例代码
示例 1 : 声明了但未赋值   
示例 2 : 布尔   
示例 3 : 数字   
示例 4 : 字符串   
示例 5 : 动态类型   
示例 6 : 变量类型判断   
示例 7 : 空对象/对象不存在   

示例 1 :

声明了但未赋值

当一个变量被声明了,却没有赋值的时候,叫做 undefined
运行效果
<script> var x; //声明了变量x,但是没有赋值 document.write('声明了,但是没有赋值的变量 x: '+x); </script>
<script>
  var x; //声明了变量x,但是没有赋值
  document.write('声明了,但是没有赋值的变量 x: '+x);
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 2 :

布尔

Boolean变量有两种值,分别是true或者false
运行效果
<script> var x=true; var y=false; document.write("布尔值:"+x); document.write("<br>"); document.write("布尔值:"+y); </script>
<script>
  var x=true;
  var y=false;
  document.write("布尔值:"+x);
  document.write("<br>");
  document.write("布尔值:"+y);
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 3 :

数字

javascript中的Number可以表示十进制,八进制,十六进制整数,浮点数,科学记数法
运行效果
<script> var a=10; //十进制 var b=012;//第一位是0,表示八进制 var c=0xA;//0x开头表示十六进制 var d=3.14;//有小数点表示浮点数 var e=3.14e2;//使用e的幂表示科学计数法 document.write("十进制 10 的值: "+a); document.write("<br>"); document.write("八进制 012 的值: "+b); document.write("<br>"); document.write("十六进制 0xA 的值: "+c); document.write("<br>"); document.write("浮点数 3.14 的值: "+d); document.write("<br>"); document.write("科学记数法 3.14e2 的值: "+e); document.write("<br>"); </script>
<script>
  var a=10; //十进制
  var b=012;//第一位是0,表示八进制
  var c=0xA;//0x开头表示十六进制
  var d=3.14;//有小数点表示浮点数
  var e=3.14e2;//使用e的幂表示科学计数法
  document.write("十进制 10 的值: "+a);
  document.write("<br>");
  document.write("八进制 012 的值: "+b);
  document.write("<br>");
  document.write("十六进制 0xA 的值: "+c);
  document.write("<br>");
  document.write("浮点数 3.14 的值: "+d);
  document.write("<br>");
  document.write("科学记数法 3.14e2 的值: "+e);
  document.write("<br>");
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 4 :

字符串

与java不同的是,javascript中没有字符的概念,只有字符串,所以单引号和双引号,都用来表示字符串。
运行效果
<script> var x='hello '; //单引号 var y="javascript"; //双引号 document.write("单引号的字符串:"+x); document.write("<br>"); document.write("双引号的字符串:"+y); </script>
<script>
  var x='hello '; //单引号
  var y="javascript"; //双引号
  document.write("单引号的字符串:"+x);
  document.write("<br>");
  document.write("双引号的字符串:"+y);
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 5 :

动态类型

变量的类型是动态的,当值是整数的时候,就是Number类型,当值是字符串的时候,就是String类型
运行效果
<script> var x=10; //Number类型 document.write("此时 x的值是 "+x+" 类型是数字"); document.write("<br>"); x = "hello javascript"; //String类型 document.write("此时 x的值是 "+x+" 类型是字符串"); </script>
<script>
  var x=10; //Number类型
  document.write("此时 x的值是 "+x+" 类型是数字");
  document.write("<br>");
  x = "hello javascript"; //String类型
  document.write("此时 x的值是 "+x+" 类型是字符串");
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 6 :

变量类型判断

使用typeof来进行判断数据类型

正是因为变量是动态类型的,所以无法确定当前到底是哪种类型,这个时候,就可以使用typeof来进行判断
运行效果
<script> var x; document.write('声明了但是未赋值的时候,类型是: '+typeof x); document.write("<br>"); x=5; document.write('赋值为5之后,类型是: '+typeof x); document.write("<br>"); x=5.1; document.write('赋值为5.1之后,类型是: '+typeof x); document.write("<br>"); x=true; document.write('赋值为true之后,类型是: '+typeof x); document.write("<br>"); x="hello"; document.write('赋值为hello之后,类型是: '+typeof x); </script>
<script>
  var x; 
  document.write('声明了但是未赋值的时候,类型是: '+typeof x);
  document.write("<br>");
  x=5; 
  document.write('赋值为5之后,类型是: '+typeof x);
  document.write("<br>");
  x=5.1; 
  document.write('赋值为5.1之后,类型是: '+typeof x);
  document.write("<br>");
  x=true; 
  document.write('赋值为true之后,类型是: '+typeof x);
  document.write("<br>");
  x="hello"; 
  document.write('赋值为hello之后,类型是: '+typeof x);

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 7 :

空对象/对象不存在

null表示一个对象不存在,因为本章节讲的都是基本类型,而null是和对象相关的,所以会放在javascript中的对象中进行讲解


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2017-06-07 请问每种类型占的字节数是多少,是都分配相同的字节数吗?
status
请问每种类型占的字节数是多少,是都分配相同的字节数吗?




1 个答案

how2j 答案时间:2017-06-08
这个提问很好: JavaScript中没有整型或浮点型之类的概念,只有Number,Number表示所有的数值类型数据。 Number最小值:-1.7976931348623157E+308 Number最大值:1.7976931348623157E+308 当Number比-1E308还小,则会显示成-Infinity; 当Number比+1E308还大,则会显示成Infinity; Infinity表示无穷大,也就是JavaScript也不知道它到底有多大。 至于Number所占用的字节数,应该根你Number的具体值有关,一般是2 - 4个字节,Boolean型占1个字节。 字符串因为长度不一定,所以是根据具体长度来确定一共有多少字节的




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2017-03-31 代码异常
痴迷设计的汪君



为什么例题中使用了typeof后出现的是underfine而尝试代码出现string类型
var x;
  document.write("声明了但为赋值的时候,类型为: " +typeof x)

							


4 个答案

scotthwang 答案时间:2017-04-20
我也出现了这个问题,可能是上一个<script>标签中用到了x,并且赋值成了String类型。 我把x变量名换成z就显示正常了。

how2j 答案时间:2017-04-04
嗯,用火狐试试

痴迷设计的汪君 答案时间:2017-04-01
我用的UC浏览器,难道需要换成火狐吗

how2j 答案时间:2017-04-01
很奇怪呢,我用你的代码无法重现你的现象呢? http://how2j.cn/code/126 你用的什么浏览器呢




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-03-16 单引号和双引号的字符串有区别吗?
2016-12-19 勘误




提问之前请登陆
关于 前端基础-JavaScript-基本数据类型 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 620943819
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图