自从毕业以后到现在~看的书是越来越少了

の其实好像貌似从来没有认认真真的看书  除非工作遇到难于解决的问题迫不得已才去翻书看

有些问题也是莫名其妙的就这样解决了  于是乎被人美名其曰“高人”或"大师

那个额头冒汗的呀  心里直发虚哈

我很想成为一名js高手  就像我师父那样的(我心中的偶像呐)(*^__^*)

我不想似懂非懂也不想不懂装懂更不想在那里凭着工作经验说事儿~~

我是不是很固执啊~有的人说女生麽  干嘛那么较真  马马虎虎的得过且过就可以了

no way~o(>﹏<)o不要啊   我就想成为真正的js高手 (╰_╯)#

所以从今天开始我要好好的认真的看完一本书  希望能得到大家的监督哈

我一进公司。。我的第一个师父就给了我2本书 一本是这个  还有一本是css的

当时看的是挺认真的~但现在早就忘光光啦

这本书讲述的很详细  是外文翻译过来的~我想再系统的看一遍  结合我现有的工作经验好好的再细化下我的知识~

希望能得到质的飞跃\(^o^)/~

我会根据书中的目录的顺序来记录  对于书中的知识点~我会结合自己的实际工作经验来摘取

---------------------------part1----------------------------------------------------------------------------------------------------------

★数据类型和值★

基本概述:3种基本数据类型——数字  字符串  布尔类型

     2种小的数据类型——null  undefined

     复合数据类型——对象  数组  函数 其他的类比如Date RegExp

  1. 数字(number)

    我经常用的是十进制~数字么  无非就是+-*/运算哈

    然后就要了解特殊的数值

       常量         含义                                               案例                                           函数检测

      Infinity      表示无穷大的特殊值         超过数字的最大值          isFinite()来检测是否是正负无穷大,NaN

       NaN        特殊的非数字值             0/0产生了未定义的结果或错误时     isNaN()

        方法归类

     toString()        把数字转化成字符串

     valueof()       返回一个Number对象的基本数字值

     toFixed(0/1/2)     把数字转化成字符串  并指定小数位

  

  2. 字符串(string)

    说到字符串我首先想到的就是反斜线\ (专有名词叫转义系列)

    在工作经常用到\ “ 和 \'  eg:"pp\"ss\""

    javascript常用的转义系列

     序列   所代表的字符

       \n     换行符

       \r      回车符

       \"      双引号

       \'      单引号

       \\     反斜线

      属性归类

    length       字符串中的字符数

     方法归类

    1). chartAt(n) 返回指定位置处的字符

    string.concat(value,...) 把一个或多个值连接到字符串上  同”+“的功能一样  我觉得用 ”+”更简单些

    2). indexof(substring) or indexof(substring,start)           

     检索字符串  s.indexof("abc")  返回找到abc在s的第一个出现的位置  如果没有找到返回-1 这个我在工作中还蛮经常用到的

    3). lastIndexof(substring) or lastIndexof(substring,start)        

     从后向前检索一个字符串 刚好indexof()方向相反  在工作中我经常这样用:

          //判断字符串是否以某个子串结尾的
            String.prototype.endsWith = function(s){
              var p = this.lastIndexOf(s);
              if(p+s.length==this.length){
                 return true;
              }else
                 return false;
            }

    4). string.replace(regExp,replacement)

      替换一个与正则表达式匹配的子串   返回的是一个新的字符串,string没有被改变

      字符串string的方法replace()执行的是查找并替换的操作。它将在string中查找与regexp相匹配的子串,然后用replacement替换这些子串。

      如果regexp具有全局性质g,那么replace()将将所有的匹配子串。否则他只替换第一个匹配的子串。

      还有replacement可以是字符串,也可以是函数呢~ps之前我不知道  这也是一个知识点哦~ 

        //显示特殊符号
        String.prototype.toShow = function () {
         var RexStr = /\s|\<|\>|\"|\'|\&/g;
      str = this.replace(RexStr,
      function(MatchStr){
     switch(MatchStr){
    case " ":
    return " ";
     break;
    case "<":
     return "<";
    break;
    case ">":
     return ">";
     break;
    case "\"":
    return '"';
    break;
    case "\'":
    return "'";
    break;
    case "&":
    return "&";
    break;
   default :
    break;
    }
    });
    return str;
        };
      //去掉字符串首尾空格
      String.prototype.trim = function () {
        var reg = /(^\s*)|(\s*$)/g;
        return this.replace(reg, "");
      };
  PS:我的代码哪里出问题了嘛?~为什么没有变色?

   5).string.slice(strat,end) 和 string.subString(start,end)

     返回字符串的一个子串。 从start开始(包括start)到end为止(不包括end)的所有字符。

     slice比subString更灵活,因为他允许负数作为参数。如果是负数,那么参数声明了从字符串的尾部开始算起的位置。-1指字符串中的最后一个字符。

   6).string.split(",")

     将字符串分割成字符串数组。返回一个字符串数组

     eg:s = "1|2|3|4"   var pp = s.split("|")  ======pp:[1,2,3,4]

   7).string.toUpperCase() 和 string.toLowerCase()

     将字符串转换成大写     将字符串转换成小写

  3. 布尔值(boolean)

    只有true和false2种~  0,NaN,undefined,null,"“都将转化成false..其他的都会转换成true

        方法归类

    valueof ()    返回Boolean对象中存放的原始的布尔值

    toString()    返回Boolean对象代表的布尔值返回"true"或”false“

  4. null 和 undefined

    null代表“无值” 即代表”无对象“的值 

    undefined代表使用了一个未声明的变量或已声明但未赋值的变量又或者使用了一个并不存在的对象属性时

   undefined不同于null  但是运算符==却将2者看做相等

   如果你想区分null和undefined  可以使用=== 或 typeof

  5.  数组 (arry)   

   数组我想大家很熟悉吧~我现在了组要归纳下他的方法。。属性的话就是length

     方法归类 

1)  .array.concat(value,....)

     连接数组。返回一个新的数组,如果value是一个数组,那么添加的是数组中的元素,而不是数组

     eg:var a=[1,2,3]   a.concat([4,5],[6,[7,8]])   //returns  [1,2,3,4,5,6,[7,8]]

     在工作中我经常用来复制数组  

      //复制数组
     Array.prototype.copy=function(o){
      return this.concat();
    };

    2) .array.join(separator)

      将数组元素连接成一个字符串。我想大家这个不会陌生吧~当无参数时,用逗号作为分隔符。

      我想大家一定想到了string中的split方法  好聪明啊~正好2个是相反的操作

      eg:a = [1,2,3]   return a.join(" ")  // return  "123"

    3) .array.pop()  和 array.push()

      pop:删除并返回数组的最后一个元素    改变了array的长度并且返回最有一个值。。若果数组是空的则返回undefined

      push:给数组添加新的元素

    4) .array.reverse()    颠倒数组中的元素顺序~它是在原数组上实现这个以操作作为替换。。。记住啦  他不是创建一个新的数组呢

    5) .array.shift() 和  array.unshift()

     shift: 移除数组的第一个元素并返回该元素  是不是pop()方法很类似~一个是第一个元素,还有一个是最后一个元素

     unshift:跟shift相反。。它是在数组头部插入元素,返回数组的长度.  

      eg:var a=[];
     a.unshift(1) //a:[1] return:1
    a.unshit(22) //a:[22,1] return:2
    a.shift() //a:[1] return: 22
  a.unshift(33,[4,5]) //a:[33,[4,5],1] return:3

  6) .array.slice(start,end)

    返回数组的一部分  与字符串的slice差不多  包含从start到end(不包括end)的指定元素

    而且start跟end都可以为负数  -1代表数组的最后一个

    

    eg: var a = [1,2,3,4,5]
       a.slice(0,3) //return:[1,2,3]
   a.slice(3) //return:[4,5]
   a.slice(1,-1) //return:[2,3,4]

  7) .array.splice(index,howmany,值1,值2,...)

    用于插入、删除或替换数组的元素。该方法会修改数组本身,而不是创建一个新数组。

    参数:index:必需。规定从何处添加/删除元素。

      howmany:必需。规定应该删除多少个元素。可以是0。

      值1,值2,...:可选。规定要添加到数组的新元素。从index所指的下标处开始插入。

      返回值:修改后的数组。

      注1:该方法会修改数组本身,而不是创建一个新数组。

      注2:当只给出index和howmany参数,实现的是删除元素功能。

      注3:当howmany参数为0,且给出添加的数值,实现的是插入元素功能。

      注4:当howmany参数不为0,且给出添加的数值,实现的是替换元素功能。

        eg:var a =[1,2,3,4,5,6,7,8];
          a.splice(4) // a:[1,2,3,4]
          a.splice(1,2) // a:[1,4]
          a.splice(1,1) // a:[1]
          a.splice(1,0,2,3) // a:[1,2,3]       对于这个方法。我们经常可能会这样封装一下再使用
      1>删除指定位置的元素
        Array.prototype.removeAt = function(i){
           this.splice(i,1)
        }
`     2>删除指定的元素
        Array.prototype.remove = function(o){
           var index = this.indexof(o)
           if(index!=-1)
              this.splice(i,1)
        }
      3>在数组指定的位置处插入元素
        Array.prototype.insertAt = function(o,i){
           this.splice(i,0,o)         
        }
      4>在某元素后插入新的元素
        Array.prototype.insetAfter = function(o,o2){
          var index = this.indexof(o);
          if(index == -1)
            this.push(o2);
          else
            this.splice(index,0,o2)
        }
 

     3种基本数据类型整理完毕  ~~~~(>_<)~~~~ 累死了

     下次整理复合类的数据~加油加油↖(^ω^)↗

     ps:如果哪里写错了~希望各位大侠能够指出来  帮帮我这个小虾米~

     PPS:http://365353618.taobao.com/?spm=2013.1.1000126.21.mAzNyB是我的点店哦~欢迎来看看哈

读书笔记 -part1的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  4. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  5. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  6. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  7. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  8. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

随机推荐

  1. 破解简单Mifare射频卡密钥杂记

    先要了解一点大学城浴卡用的是什么卡,经查证是Mifare S50卡,也有叫ISO14443A的(协议名).本来想看看大学城浴卡有没有安全漏洞,没想到浴卡公司在安全性上几乎是蔑视我们大学生的智商,虽然被 ...

  2. (step5.1.2)hdu 2473(Junk-Mail Filter——并查集)

    题目大意:输入两个整数n,m(n表示点的个数,m表示操作数).在接下来的m行中,对点的操作有两种 1)M a b . 表示将a.b并到一个集合中 2)S a .表示将a从原来的集合中去除,而成为一个单 ...

  3. linux mount / umount 命令的基本用法

    linux mount / umount 命令的基本用法 及 开机自动挂载 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a 安装在/etc/fstab文件中类出的所有 ...

  4. HDOJ(HDU) 2060 Snooker(英语很重要。。。)

    Problem Description background: Philip likes to play the QQ game of Snooker when he wants a relax, t ...

  5. yum nfs

    linux下3大文件共享方法 1.NFS NFS服务器配置 编辑/etc/exports,在文件中列出,要共享的目录.书写规则是:共享目录主机(参数).并且每条规则占据一行.例如: /mnt/mp3 ...

  6. maven,本地仓库和私服nexus的配置,以及eclipse载入maven

    首先可以进入http://maven.apache.org/官网查看如何配置 一.配置环境 1 确定自己的java运行环境配置正确-->在cmd运行 java -version或echo %JA ...

  7. 站内信DB设计实现

    两年前,万仓一黍在博客园发了两篇关于站内信的设计实现博文,<群发"站内信"的实现>.<群发"站内信"的实现(续)>,其中阐述了他关于站内 ...

  8. msxml 操作xml

    1.简介 在.NET平台,微软为C#或托管C++程序员提供了丰富的类库,用以支持各种需求,其中就有对XML文件操作的丰富的类.例如XMLDocument, XmlElement等.但是C++标准库中并 ...

  9. Android四大组件——Service

    Service相关链接 Service初涉 Service进阶 Service精通 Service是Android系统中的一种组件,它跟Activity的级别差不多,但是它不能自己运行,只能后台运行, ...

  10. [转] IPC之管道、FIFO、socketpair

    管道和FIFO作为最初的UNIX IPC形式,现在已用得较少.SocketPair可作为全双工版本的管道,较为常用,这里简单做个笔记 管道 * 只用于有亲缘关系的进程间通信 * 单向,即半双工 (双向 ...