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

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

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

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

我很想成为一名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. 【HDOJ】5063 Operation the Sequence

    #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 100005 #defin ...

  2. fmt命令

    简单的格式化文本 fmt [option] [file-list] fmt通过将所有非空白行的长度设置为几乎相同,来进行简单的文本格式化 参数 fmt从file-list中读取文件,并将其内容的格式化 ...

  3. android sudio 记录

    1. KVM is not installed on this machine (/dev/kvm is missing) 原文网址:http://askubuntu.com/questions/56 ...

  4. Hyper-V连接虚拟机异常,“无法进行连接,因为可能无法将凭据发送到远程计算机”

    前两天把公司的TFS从2010升级到TFS2012(昨天又升级到TFS2013).今天使用服务器Hyper-V连接虚拟机时居然报错了. 翻看各种日志,虽然错误大一对一对地,但找不到任何有用的信息.无奈 ...

  5. 构建你的第一个App

    Building Your First App 原文链接:http://developer.android.com/training/basics/firstapp/index.html 译文链接1: ...

  6. 反编译工具 使用.NET JustDecompile来反编译你的程序代码

    原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...

  7. W3C词汇和术语表

    以A字母开头的词汇 英文 中文 abstract module 抽象模组 access 访问.存取 access control 存取控制 access control information 存取控 ...

  8. iOS开发之iPhone通过get和post方式请求asp.net webservice

    .创建一个webservice .在webconfig中启用http get 和http post. 复制代码 <</span> webServices > <</ ...

  9. Understand Rails Authenticity Token

    翻译整理自: http://stackoverflow.com/questions/941594/understand-rails-authenticity-token 主要翻译的是第一个回答,另外结 ...

  10. 加入gitignore文件没有起作用怎么办

    步骤一: 假设有未提交的文件先提交到Git. 步骤二: 在Git根文件夹下运行以下的Git命令: git rm -r --cached . git add . git commit -m " ...