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的时候都会重新创建一遍,而原型方法则不用。

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

继续前行!

转载于:https://www.cnblogs.com/killbug/p/3443338.html

JS基础知识(数据类型)相关推荐

  1. JS基础知识学习(一)

    JS基础知识 前端开发常用的浏览器 谷歌浏览器(chrome):Webkit内核(v8引擎) 火狐浏览器(firefox):Gecko内核 欧朋浏览器(opera):Presto内核 IE浏览器:Tr ...

  2. Js基础知识梳理系列

    小序:总是感觉自己的技术一直在原地踏步,想学习一些新的技术,但学起来很吃力,而且总是没有什么实际的收获,似乎进入了所谓的"瓶颈期".问了一些前辈是否也遇到过同样的问题,他们给我的解 ...

  3. js基础知识学习(二)

    JS基础知识 JavaScript 数据类型转换 把其它数据类型转换为number类型 isNaN .Number.parseInt.parseFloat 在进行加减乘除数学运算的时候 true-&g ...

  4. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  5. php插入js教程,JavaScript_JavaScript入门教程(2) JS基础知识,在什么地方插入 JavaScript  Ja - phpStudy...

    JavaScript入门教程(2) JS基础知识 在什么地方插入 JavaScript JavaScript 可以出现在 HTML 的任意地方.使用标记,你可以在 HTML 文档的任意地方插入 Jav ...

  6. (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】

    JS基础知识四(异步) 提问 单线程 应用场景 callback hell和promise 提问 同步和异步的区别是什么 手写用Promise加载一张图片 前端使用的异步的场景有哪些 单线程 JS是单 ...

  7. (六)JS基础知识三(走进作用域和闭包)【三座大山之二,不会闭包,基本不会通过】

    JS基础知识三(作用域和闭包) 提问 作用域 自由变量 闭包 this 提问 this的不同应用场景,如何取值 手写bind函数 实际开发中闭包的应用场景,举例说明 创建10个a标签,点击的时候弹出对 ...

  8. (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】

    JS基础知识二(原型和原型链) 提问 class 继承 类型判断(instanceof) 原型 原型关系 基于原型的执行规则 原型链 说明 提问 如何准确判断一个变量是不是数组 class的原型本质 ...

  9. (四)JS基础知识一(深入分析变量类型和计算)【不会变量,别说你会JS】

    JS基础知识一(变量类型和计算) 提问 变量类型 值类型 vs 引用类型 (堆栈模型) 值类型 引用类型 typeof 运算符 深拷贝 变量计算 字符串拼接 == if语句和逻辑运算 if语句 逻辑判 ...

  10. 了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化

    js基础知识中的作用域和闭包 一.作用域 1.作用域.自由变量简介 (1)作用域定义 (2)作用域实例演示 (3)自由变量定义 (4)自由变量实例演示 2.作用域链简介 (1)作用域链定义 (2)作用 ...

最新文章

  1. python看什么书-自学python看什么书
  2. SQL优化常用方法10
  3. python 异常_一文掌握 Python 异常处理的所有知识点
  4. linux shell 域名 ip,Shell脚本一种检查Linux中域名和IP地址所有权信息、检查多个域名的到期日期工具...
  5. Element Swapping
  6. java怎么插入oracle数据库timenstamp,Sybase数据库技术,数据库恢复专家
  7. kubectl apply -f_广州车展捷豹路虎参展阵容 全新F-PACE 路虎卫士90
  8. 什么是云存储 API
  9. 机器学习 - [集成学习]Bagging算法的编程实现
  10. 换服务器系统怎么迁移,更换服务器时,数据迁移的方法
  11. 两步教你在安卓中快速使用矢量图
  12. 【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP
  13. 【游戏策划】消消乐游戏策划案
  14. python 数据分析 |3. Pandas 学习
  15. VB.Net实现身份证读卡器调用读取身份证信息和社保卡信息
  16. Unity圆环进度条制作
  17. UR机器人PolyScope使用入门教程
  18. 基于ZigBee的城市道路除尘降温系统设计
  19. libgdx中文社区网正式上线了-libgdx.net
  20. jupyter notebook 的 hinterland 插件 设置 代码提示但是默认不选中

热门文章

  1. 蒙特卡洛树搜索_蒙特卡洛树搜索与Model-free DRL
  2. virtualbox启动后一直黑窗_UBUNTU18.04 安装virtualbox-6.0,出现rc=-1908问题解决方法
  3. python random函数shuffle_Python|有趣的shuffle方法
  4. datetime数据类型_当pandas遇上数据类型问题
  5. LeetCode-108将有序数组转换为二叉搜索树
  6. 系统学习机器学习之神经网络(十) --BAM网络
  7. 决策树(八)--随机森林及OpenCV源码分析
  8. python为什么会出现无响应怎么办_python定时检测无响应进程并重启的实例代码
  9. python 语法提示_Python 语法提示vim配置
  10. 导航守卫与keep-alive