装换为布尔值

  • 装换表
    |Value | Converted to…|
    |:——|:———-|
    |true/false | no conversion|
    |undefined, null | false|
    |Number | 0, NaN become false, others – true.
    |String | “” becomes false, any other – true|
    |Object | true|

  • 注意,字符”0″为true;

  • 干到逻辑运算符会触发布尔装换;

  • 唯独呢发于奇怪之地方,看下面两规章

  alert( [0] == 0 )  // true
  alert( "\n0\n" == 0 ) // true
  alert( "\n0\n" == false ) // true
// 

  if ([0]) alert(1)  // 1, if treats [0] as true
  if ("\n0\n") alert(2) // 2, if treats "\n0\n" as true
  • 有心人思量什么转移的,就可知道了。==独比值得结果,[0],“0”装换为数值后就是0,但是当他们是数组中的如出一辙件,或字符串时毫不是拖欠的。

重新拘留一个比较奇怪之事例

alert( [] == ![] ) // true
```分析一下这个例子有利于更加好的理解类型装换
- 首先,看右边![],逻辑非对[]进行布尔转换,依据上面的装换表,数组其实也是对象,object装换为真。所以右边![] = !true = false;
- 再看左边,对象与简单类型比较时,会按数值方式装换,没有valueOf,将使用toString进行装换(以逗号分隔的字符串)那么就装换为一个空的字符串''=false;
- 所以二者相等;

检测一下你是否真的掌握了数值装换,看看下面的题目能不能理解

```javascript
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45"
"4" - 2 = 2
"4px" - 2 = NaN
7 / 0 = Infinity
{}[0] = undefined
parseInt("09") = "0" or "9" // octal or decimal, depends on the browser
5 && 2 = 2
2 && 5 = 5
5 || 0 = 5
0 || 5 = 5

一个略带女孩,叫做库帕,父母是科学家,来沙漠探险的时节将她为丢了。她便与水果城的人们生活于一起,这个略带女孩光脚丫子、梳两单稍辫子,很可爱。

对象转换为简单数据类型

巴几摆两水果的

String

  • 字符串中好涵盖由反斜杠\以及字符构成的特殊字符,如\n换行,\b
    退格,\f 换页,\r回车,\tTab;

var multiLine = " first \n second \n third line "
alert(multiLine) // alerts 3 lines
  • “”当做转义符号为可免有些题材,如

var str = 'I\'m the Valrus'
  • 当计算字符串长度时,特殊字符也会见与计算,如:

var str = "My\n" // 3 .`\n`也算其中之一
alert(str.length)  // 3
  • javascript中之字符串只能读取不克改变;
  • javascript中发出三三两两栽查找子字符串的点子,indexOflastIndexOf,返回找到的率先个字符的职位,没找到归-1;
  • 逐位运算符~not,~n相当于 -(n+1),if ~indexOf相当于if found;
  • 抱子字符串的老三种艺术substr, substring, slice,可以Google找到它们之间的差异,也可以从晚文链接中找到;
  • 字符串的记
  • 字符串逐位比较,一旦比较有大大小小就不再向后比;"Bob" > "Bar" // true, because o > a,alert("2" > "14"); // true
  • 字符装换为ASCII码比较
  • 当起数值与于时,会拿字符串也易为数价,如alert(2 > "14"); // false

自古以来正邪不少于当即,欢迎反面角色上场


整部动画片里的反面角色都是成双成对的无比着重的是双边野猪,一公一“母”(只是中文配音是阴之耳,动画中之模样应该还是一头公猪)。他们当绿洲紧邻潜伏,期望吃到特别的鲜果,对水果等围追堵截。每次都于香蕉的小聪明与她们好的笨中化险为夷。不是继承回到吃树叶就是丢进好要的骗局中。记得那头“母”猪最欣赏用憨憨的声响喊公猪:头儿~……

(皇上,您还记大明湖畔那对憨憨的斗鸡眼么~  )

零星仅仅鳄鱼,出现几乎带领比少,当领导干部的最低一些,戴个罪名,另一个傻乎乎大个凡跟班。

再有几只有专业跑龙套的蛇和大象….

鲜果城里的反派有那么几号是成为对出现的。

绝常见的饶是那片独猪;

从是“一止含疯狂科学家属性的猴子”和“一仅出任蛮力帮手的不可开交猩猩”的重组;

鲜但鳄鱼的三结合于少见。

另动物类的反派角色还包北极熊、大象、蛇、“龙”、蜗牛、兔子、老鼠、家猪等。这些龙套里,北极熊以及蛇比较宽泛,但限于特定地段——北极熊一般在同加拿大关于的故事里出场;蛇一般出现在山林地区;“龙”在一个描述亚洲底故事里出台,但当时长长的“龙”的表面是因净土的上为原型的,而非是中式的圣。

其它水果精灵族的较广阔角色还有:

蒜(有几乎聚众里吧于喊做“豌豆”,但形制明显是大蒜)——喜欢恶作剧的粗身材,常常一大群一起出现,利用个子有些的特性,经常估计将别人绊倒什么的;

西瓜——有男有女,体型高大,经常走动不扣路;

橡子——戴在安全帽一样的褐色头盔,也是成群出现,总是将在工具;

番茄(或者柿子)——头上发生相同片叶子的橙色果子,在本中文版的ED里也经常出现;

玉米——水果城里开店之同个角色;

海盗(有时候也“兼任”盗马贼)——戴在同一仅仅眼罩的类卷心菜一样的东西,只出平等长腿;

恶法师——绿色的葡;

马铃薯,这个土豆曾经扮演了类似于“阿拉丁神灯中冒出来的神人”一样的角色,但也曾以都市到处偷花。

见到频链接:《水果城》
西班牙语【生肉】_截止动画_番剧_bilibili_哔哩哔哩
http://www.bilibili.com/video/av10422306/

记忆会模糊,但尚未忘记,重温一方方面面,感觉那个好。

转车为字符串

  • 一经目标被有toString方法,且返回一个简练类型数据,那么就是返回这个字符串(所有数组默认有,所以一般实施及者结束);
  • 默认

alert( {key: 'value'} ) // toString for Objects outputs: [object Object]
alert( [1,2] )          // toString for Arrays lists elements "1,2"
alert( new Date )       // toString for Dates outputs the date as a string
  • 得好定义一个toString方法

  var user = {
    firstName: 'John',
    toString: function() {
      return 'User ' + this.firstName
    }
  }
  alert( user )  // User John
  • 设若在valueOf方法,且返回一个简短类型数据,那么回这个;
  • alert()会触发装换吧字符串

洋蓟(ji)——一个爱恶作剧的兵,用刺捅别人似乎是他的最老爱好。

Number, Math

  • JavaScript中的数值采用双精度(IEEE 754),每个数占8byte;
  • JavaScript可以分辨十六进制(0xFF),八进制(010)以及科学计数方法的数字(3e5);
  • Infinity-Infinity是少单与众不同的价,它们盖或小于任何价值,对其进行演算后仍然会收获Infinity,二者相除会获NaN,并无见面报错;
  • 当一个数学运算符不克吃正确执行时会拿走NaN(0/0),它不等于包括该自身的另数价,只可发isNaN函数检查;
  • 除外双向的加号,其它具有的演算符都会将数值形式的字符串转换为数值;alert( -"12.34" / "2" ) // -6.17;
  • 未克转换则回NaN;
  • 一个由于空白符组成的字符串会叫转化为0;
  • 若是字符串首配母非数字,parseInt/parseFloat会返回NaN,alert( parseInt('a123') )//NaN;
  • JavaScript中之数值计算在精度问题(alert(0.1 + 0.2 == 0.3)//false)(浮点数不可知给二上前制精确的代表),解决办法可以先转化为整数,再除因10alert( (0.1*10 + 0.2*10) / 10 ) // 0.3,也可行使toFixed;

一致单纯骄傲、多口的菠萝,名字叫罗里,自称是“伟大之诗人罗里”,有些自夸,其实头脑还算是好只要。他是个明白、自负、胆小且有时会脾气暴的军火,貌似运气也无到底太差——在全故事中,我们可见到不少下罗里会踩到狗屎。

改换为数值(两种植情形下产生,非常广阔)

  • 本着数值进行计算的法(
    Math.sin(obj),isNaN(obj))以及运算符(+,-,*,/等等)
  • 做比较常(注:obj1==obj2,只来双方引用同一对象时才等);Number(obj)为会见转换,
  • 数值转换规则如下

    • 万一是valueOf方法,且返回一个简便类型数据,那么回这个结果;
    • 要目标被在toString方法,且返回一个大概类型数据,那么就算回来这个字符串;

    alert( new Date() ) // The date in human-readable form
    alert( +new Date() ) // Microseconds till 1 Jan 1970
    
    • 协调定义一个valueOf方法

      var room = {
        num: 777,
        valueOf: function() {
          return this.num
        }
      }
      alert( +room )  // 777
    
    • 免有valueOf方法,但是是toString方法时会调用此方法

      var room = {
        num: 777,
        toString: function() {
          return this.num
        }
      }
      alert( room / 3 )  // 259
    
    • 注意才待回到简单数值类即可(Numeric,String,Boolean),不肯定不要是回数值;

大头萝卜倒置

Array

  • shift,pop去除对应项,并赶回该项;
  • unshift,push;
  • join,split;
  • 如若给数组的length赋值低于数组实际的长短,会去除超过的项;
  • push,pop一直操作最后一宗,其运行速度快,效率高;
  • shift,unshift操作第一项,需要记住整个数组,效率不如;
  • 数组中之length方法(属性) 其实是last index+1,

    var fruits = [] // empty array
    fruits[1] = 'Peach'
    fruits[99] = 'Apple'
    alert(fruits.length)  // 100 (but 2 elements)
    
  • 针对数组也得采用delete,但是只会去该项的值,不会见真正抹该项;

  • splice当原数组上改和slice回去原数组的一个局部(新数组);
  • sort默认把内容转化为string,然后根据ASCII码比较;
  • new Array返回的是负有指定长度的值为空的数组;

一只仙人掌,名叫索尼,是菠萝暨香蕉的好对象,虽然脑子不顶灵光,但战斗力是。索尼很单纯,有时也会见做出过多原生的言谈举止。(这货在动画里时常动不动就于有动物吃少,然后由身上产生刺又于吐生了,相当悲催)

说明

正文对各类型并未开详细的证明,想询问又多材料可参照以下文章

  • Mastering data
    types

平统进口西班牙之动画片片,上个世纪90年份中就于我国多贱地方电视台广播过,90年代的我们尚是挺甜蜜之。

Objects

  • obj.propobj[prop]二者都得看对象吃的同样桩,但是值得注意的凡obj.prop里prop是该项的名号,obj[prop]里的prop是该项的价,此时prop是字符串,应该加引号;
  • alert("key" in obj) // true, key exists使用in运算符可以就此来确定是否存在有同桩;
  • 使用for in时不时,子项处理顺序不确定,不同浏览器有所差异;
  • 目标被可储存所有类型,包括函数;
  • 得使目标实现链式调用,其关键在于每次的返回值为this;

var ladder = {
  step: 0,
  up: function() {
    this.step++
    return this
  },
  down: function() {
    this.step--
    return this
  },
  showStep: function() {
    alert(this.step)
    return this
  }
}
ladder.up().up().down().up().down().showStep()  // 1
  • 应用构造函数创建对象时,var animal = new Animal()var animal = new Animal等同;
  • 利用构造函数创建对象时,其关键在于this,如果构造函数返回了一个靶则会忽视this;
  • JS中存在Math,Date,RegExp老三种内置对象,函数从某种程度上来说也是目标,String,Number,Booleans三者比较特别,它们分别拥有一些道;

还有水果村的成百上千水果等….来张全家福

(这个是当开会的当儿~ 墙上挂的那张照片太旺盛了~- – 草莓还是老的好哎~

平单单香蕉,名叫帕克,背包里发意想不到之各种工具,每次遇难就是它发挥作用,什么都发生。帕克在故事里是一个学者型的角色,冷静、博学而且总能在危机四伏关头想到好方法。一般的话,帕克很少惹出祸患,而且为总会为罗里同索尼捅出之祸来容易后。他脾气很好,经常发生换位思考的举措,算得上是一律各类军师级的角色。(这是自个儿最欢喜的角色~个人认为这角色与机器猫有异曲同工之帅)

除开开几个重大的角色外,还有一对出镜率比较少的果品,像水果城的市长(故事中早已出现“参议员”的称号),是同样只是胖的杨梅,戴在缎带,拿个拐棍,感觉不绝强势。

罗里与索尼是好基友,故事中常常会面面世俩人分别后更了多摇摇欲坠的破事儿然后重新碰到而心花怒放的拥抱场面,当然了,结果每次罗里还深受索尼的刺给扎伤,再尖叫着走丢或者摆放有什么别的搞笑之动作。即使这样。罗里还是“死不悔改”,总是还着被扎的数~。