1,关于typeof
 
  因为是弱类型语言,而程序代码中又不得不定义出变量的类型所提供出来的方法。
  返回的结果如下图:
 
  如下例子:
  

var test = "123";
var ob = {
add : function(x,y){return x + y}
}
var fu = function(x,y){return x - y}
var nu = null;
var xyz;
alert(typeof(test));//string
alert(typeof(123));//number
alert(typeof(undefined))//undefined
alert(typeof(fu));//function
alert(typeof(ob));//object
alert(typeof(nu));//object
alert(typeof(xyz));//undefined
  
  看来上面的例子,可以说通过typeof来判断变量类型不是件很简单的事。
  更详细的列表: 摸我
  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
 
2,undefined
  
  undefined表明变量还未定义。
 
  就像你问javascript,tea是什么,它会回答:没听说过...
  就如下:
var tea;
alert(tea);
  也可以这样:
var x = undefined;//默认未赋值的变量为undefined
  判断方式:
if (x === undefined) ...
if (!x) ...
if (typeof x === "undefined") ...
推荐最后者,详细区别参考:继续摸
另外,对于第二种判断,大家一定学习过if(x)返回false的值有如下:
false
0
""
NaN
null
undefined

3,null

  null表示一个空对象指针,参照前面typeof的例子,typeof操作会返回"object"。

var car = null;
alert(typeof car); //”object”

  就像你问javascript,tea是什么,它会回答:听说过,具体是怎么样的不知道。这就是和undefined的区别吧。
  如果用双等号判断要注意的是:
alert(undefined == null)//true
4,Boolean

关于自动转变值到true或false:
var message = “Hello world!”;
var messageAsBoolean = Boolean(message);

  在if里的值也是这个道理,如下表转换原则:

5,Number

关于八进制和十六进制

  如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

var y=0377; var z=0xFF;

  所以不要在数字前面写0

方法:

toFixed()方法比较常用,比如在页面上计算百分比的时候:
var num = new Number(13.37);
document.write (num.toFixed(1))
判断是否为数字:
1,使用isNaN(),isNaN是is Not a Number的简写,所以不是number返回true,是number返回false。
2,当然可以使用typeof

转成数字类型:
1,parseFloat(x)
   特别注意:parseFloat("40 years") //40
   详细:摸摸
2,new Number(x)
3,~~x
4,+x 
  等于调用了Number的构造函数

6,Object
三种方式创建object(非常清晰):
继续摸摸
关于三种方法:
类方法

对象方法

原型方法
例子:
function People(name)
{ this.name=name; //对象方法 this.Introduce=function(){ alert("My name is "+this.name); }
}
//类方法
People.Run=function(){
alert("I can run");
}
//原型方法
People.prototype.IntroduceChinese=function(){
alert("我的名字是"+this.name);
}
var p1=new People("Windking");
p1.Introduce();
People.Run();
p1.IntroduceChinese();
理解:
1,类方法理解成静态方法就可以了。
2,对象方法就是实力方法。
3,用于扩展原对象,new出来的实例可以调用,内部使用的this,是指对象实例
  对象方法在new的时候都会重新创建一遍,而原型方法则不用。

----------------------------------------

继续前行!

JS基础知识(数据类型)的更多相关文章

  1. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  2. HTML+CSS+JS基础知识

    HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...

  3. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  4. 网站开发进阶(十五)JS基础知识充电站

    JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...

  5. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  6. NodeJs>------->>第三章:Node.js基础知识

    第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 console.log(" node app1.js 1> ...

  7. C语言基础知识-数据类型

    C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...

  8. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

  9. js基础知识--变量类型和变量计算

    提问: JS中使用typeof能得到的哪些类型 何时使用===何时使用== JS中有哪些内置函数 JS变量按照存储方式区分为哪些类型,并描述其特点 如何理解JSON 涉及知识点:(1)变量类型 值类型 ...

  10. JS基础知识二

    JS控制语句 switch 语句用于基于不同的条件来执行不同的动作 <script> function myFunction(){ var x; var d=new Date().getD ...

随机推荐

  1. Java: constructor 构造代码块

    构造器与类同名 每个类可以有1一个以上的构造器 构造器可以有0个,1个或者多个参数 构造器没有返回值,不可以写return 构造器总是伴随着new操作一起调用 构造函数的作用:可以用于给对象进行初始化 ...

  2. POJ 1094 拓扑排序

    Description:      规定对于一个只有大写字母的字符串是有大小顺序的.如ABCD.即A<B.B<C.C<D.那么问题来了.现在第一行给你n, m代表序列里只会出现前n的 ...

  3. FusionCharts ajax 调用方式

    方式一:setJSONUrl function initChart() {                    var myChart = new FusionCharts("Fusion ...

  4. C#拉姆达(=>)表达式

    前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似 ...

  5. B’QConf(北京软件质量大会)记

    下午从公司加班回来,顺路到淘宝(大望路)参加B'QConf(北京软件质量大会).淘宝所在的国家广告产业园原来是一个菜市场,已经有大约6年没有到那一带活动了.之所以记得这么清楚,是因为6年前曾经从那里的 ...

  6. HDU 3567 Eight II 打表,康托展开,bfs,g++提交可过c++不可过 难度:3

    http://acm.hdu.edu.cn/showproblem.php?pid=3567 相比Eight,似乎只是把目标状态由确定的改成不确定的,但是康托展开+曼哈顿为h值的A*和IDA*都不过, ...

  7. eval函数的缺陷

    1.今天在维护产品目录的时候,发现了个奇葩的事情,eval函数转换出错,查验之后发现字符串中如果加入了换行符就会导致该问题. 2.测试程序 info.file [{productDirIds:'1', ...

  8. Java注解配置

    Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annota ...

  9. 合理利用 vs2013的性能分析跟诊断

    选择对应的项目==> 我正常是选择采样 就包括里面的一些耗时.  挺好用的. 可以根据热路径 还有访问的占比.知道哪个环节占用的访问时间 还有性能耗能多. 可以点进去 跟踪跟修改

  10. MapReduce 重要组件——Recordreader组件

    (1)以怎样的方式从分片中读取一条记录,每读取一条记录都会调用RecordReader类: (2)系统默认的RecordReader是LineRecordReader,如TextInputFormat ...