js深造

基本数据类型 String、Number、Bool、undefined和null

引用数据类型 Object(Array,Function,RegExp等)

typeof   123   //number

typeof   'abc'  //string

typeof    true       //boolean

typeof    undefined   //bndefined

typeof    null        //object

typeof    { }           //object

typeof    [ ]           //object

typeof    console.log      //function

null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。

Null类型只有一个值null

Undefined类型只有一个只undefined

数据类型检测

  1. typeof a 检测基本数据类型:String , Number , Bool, Undefined

注:null的意义是 空对象指针,采用typeof检测会返回 object。

  1. a Instanceof Array 检测引用类型,但是仅能判断是否是对象的实例,并不能准确判断究竟是哪种数据类型。

  2. Object.prototype.toString.call(a) 准备判断传入参数的数据类型

null 与 undefined 的区别

Null:空对象指针,定义一个将来 用于 保存对象 的变量,最好将该变量初始化为 null.

例如 var o = null; 说明o这个变量是要用来保存对象类型的数据的,执行typeof o会返回’object’,那么只要检查null的值就可以判断出该变量是否已经保存了一个对象的引用。在实际开发工作中,经常用到

例如:if ( goods != null ) { // 对goods对象执行相应操作 }

Undefined : 使用var声明一个变量但未初始化其值,该变量的值默认取得undefined,使用typeof检测声明但未初始化的变量,返回undefined

例如 var a; console.log( typeof a ) // undefined

区别和联系:

undefined值派生自null值,因此使用全等操作 undefined == null,返回true;

二者用途不同,不建议将一个变量显式的设置为undefined,比如var a = undefined,声明但未初始化默认会赋值为undefined;但对于null,只要意在保存对象的变量还没有真正保存为对象,就应该明确的让该变量保存为null值,这体现了null作为空对象指针的意义,且利于区分undefined和null。

执行undefined === null 返回false,全等’===’操作符的判断,基于typeof检测到的数据类型,而typeof undefined返回undefined,typeof null返回object。

number 有int+float

1.记住 float 浮点的运算不是精确的

2.number 里面有一个特殊的值 NaN 表示一个不是数字的number类型

eg var m=parseInt("a");

因为NaN表示值不是数字类型 。所以两个 NaN==NaN 的值为false

任何数字和NaN做运算的值都等于NaN, NaN的值不是数字,运算不了。

Numer的小数运算精度问题 参考 https://www.cnblogs.com/ranyonsue/p/11378200.html

eg 0.1+0.2===0.3 false

原因:因为计算值是进行二进制计算 ,通常小数转成2进制形成无限循环的二进制小数,计算机只能根据float 最大精度进去截取,所以算出来是有差别的(无限循环?? 整数部分转二进制 除2 直到商为0逆向取余 小数部分转二进制 乘以2 直到小数位为0 顺向取整)

解决办法:

1 .tofixed()指定精度

2.
var num1 = 0.1; 
var num2 = 0.2;
var c=0.1+0.2;//0.30000000000000004
var m = Math.pow(10, 1); //10的1次幂
//原理 ,先转成计算机可以计算的数字,比如整数。在进行元素,之后还原即可 
//此例子是先*10 在 除以10

js Number 结果相关的类

  Math.abs(-1);//Math 类
  window.parseInt("1");
  window.parseFloat(0.2222);
//上面两个Numer上 也有这个方法 Number.parseInt
  window.isNaN("xxxx");//true  里面 的值会转成数字
  Number.IsNaN(Number.NaN);//里面 的值不会进行数字转换 用来修复NaN!=NaN 的问题,判断一个数字是否是NaN值 个人认为

js Nubmer 的一些技巧,提示

1.转成成整数 1111.1111^0 这是一个位运算 具体是去掉小数位 和Math.floor一样的效果 装波利器,我也不知道是在哪里看到 的

其他数据类型是怎么转为number的方法 )

数字类型转换为number返回原值;
布尔类型true转为1,false转为0;
null转为0;undefined转为NaN;
如果只有数值的字符串则返回该数字,空返回0 ,除此之外返回NaN;
对象\数组调用toString()方法后得到的值进行转换;
tip
当 使用+运算的时候。另外一个值是字符串的时候,会把数字转成字符串 进行 字符串相加

1+true; //2
1+"true";//"1true"
1+{a:1};//"1[object Object]"
var a={b:1,toString:function(){return this.b+2}}; 这相当于覆盖了Object对象的toString 的方法
var m=a+2;//5
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • 1、标识符 标识符是指变量、函数、属性的名字,或函数的参数。 格式规则: 第一个字符必须是一个字母、下划线(_)或...
    风中丶凌乱阅读 1,612评论 0 0
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,634评论 0 6
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,310评论 0 4
  • 第一章 前端三大语言:HTML(专门编写网页内容)、CSS(编写网页样式)、JS(专门编写网页交互行为) 能简写尽...
    fastwe阅读 925评论 0 0
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,095评论 0 21