JavaScript高级教程设计——读书笔记

数组方法

  • 插入与删除:pushpopshiftunshift进行数组元素的插入与删除。
  • 排序:reverse对数组进行倒序操作、sort传入一个函数,根据方法进行排序。
  • 连接:concat对数组进行连接,基于当前数组中的所有项创建一个新数组。
var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["white", "pink"]);//red,  green, blue, yello, white, pink
  • splice()方法:
  1. 删除:传递两个参数,splice(0,2)删除数组中的前两项
var colors = ["red". "green", "blue"];
var removed = colors.splice(1, 0);
//removed =  ["green", "blue"];
  1. 插入:传递三个参数,起始位置,要删除的项数,插入的项
var colors = ["red". "green", "blue"];
var removed = colors.splice(1, 0, "yellow", "pink");
//removed =  ["green", "blue", "yellow", "pink"];
  1. 替换:传递三个参数,向制定位置插入任意数量的项,且同时删除任意数量的项。起始位置,要删除的项数,插入的任意数量的项。
  • 位置方法indexOf()、lastIndexOf()
var number= [0,1,2,3,4,5,6,7,8,9];
console.log(number.indexOf(5));     //5
console.log(number.lastIndexOf(2));     //7
  • 迭代方法
  1. every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
  2. filter():返回执行制定函数后返回true的项组成的数组;
  3. forEach()
  4. map():放回每次函数调用的结果组成的数组;
  5. some():如果执行函数中任意项返回true,则整个返回true
var number = [0,1,2,3,4,5,6,7,8,9];
var everyResult = number.every(function(item){
    return item > 2;
});     //false

var someResult = number.some(function(item){
    return item > 2;
});     //true

var filterResult = number.filter(function(item){
    return item > 2;
});     //[3,4,5,6,7,8,9]

var mapResult = number.map(function(item){
    return item * 2;
});     //[0,2,4,6,8,10,12,14,16,18]
  • 归并方法
    reduce()reduceRight():迭代数组的所有项,然后构建一个最终返回的值。
    这两个方法都接收两个参数:每一项上调用的函数、作为归并基础的初始值。
    reduce()reduceRight()的函数接收四个参数:前一个值,当前值,项的索引和数组对象。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
    return prev + cur;
});     //15

Function类型:

  • 函数实际上是对象。
  • 函数声明与函数表达式:解析器先读取函数声明,并使其在执行任何代码之前可用。函数表达式必须等到解析器执行到他所在的代码行,才会真正被解释执行。
alert(10, 10);      //20
function sum(num1, num2){
    return num1 + num2;
};      //可以正常执行


alert(10, 10);      //undefine
var sum2 = function(num1, num2){
    return num1 + num2;
}
  • 函数内部属性
    函数内部有两个特殊的对象:argumentsthis。虽然arguments主要用途是保存函数参数,但他还有callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。
function factorial(num){
    if(num <= 1){
        return 1;
    }else{
        return num * factorial(num - 1);
    }
}       

//利用callee属性可以把上面的函数改写成下面的形式,降低耦合
function factorial(num){
    if(num <= 1){
        return 1;
    }else{
        return num * arguments.callee(num - 1);
    }
}    

argumentscaller属性:该属性保存着当前函数的函数的引用,如果在全局作用域中调用当前函数,它的值为null。

function outer(){
    inner();
}

function inner(){
    alert(inner.caller);
}

outer();

//利用caller属性可以把上面的函数改写成下面的形式,降低耦合
function outer(){
    inner();
}

function inner(){
    alert(arguments.callee.caller);
}

outer();
  • 函数属性与方法
    每个函数包含两个属性:lengthprototypelength表示函数希望接收的命名参数的个数。
    apply()call()设置函数体的this对象的值。它们唯一的区别是apply()接收参数数组,call()传递给函数的参数必须逐个列举出来。

Boolean类型

Number类型

  • 数值格式化为字符串的方法toFixed()
var num  = 10;
alert(num.toFixed(2));      //"10.00"
  • 数值格式化为指数:toExponential()
var num = 10;
alert(num.toExponential(1));    //"1.0e+1"

string类型

  • 字符方法charAt()chatCodeAt()
var stringValue = "hello world";
alert(stringValue.charAt(1));       //"e"
alert(stringValue.charCodeAt(1));       //"101"
  • 字符串操作方法
  1. 拼接:concat,其实还不如用+来拼接字符串
  2. 三个基于子字符串创建新字符串的方法:sclice()substr()substring()sclice()substring()接收两个参数,第一个表示开始位置,第二个表示结束位置。substr()第一个参数表示开始位置,第二个参数表示返回的字符个数。
  • 字符串位置方法indexOf()lastIndexOf()
var stringValue = "hello world";
console.log(stringValue.indexOf("o"));      //4
console.log(stringValue.lastIndexOf("o"));      //7

trim()方法:删除前置及后缀的所有空格

var stringValue = "                      hello world                   ";
console.log(stringValue.trim());        //"hello woeld"
  • 面向对象的程序设计
    创建对象:
  1. 工厂模式
function createPerson(name, age, job){
    var o = new Object();
    o.name = this.name;
    o.age = this.age;
    o.job = this.job;
    return o;
}
var person1 = createPerson("reg", 22, "SWPUER");
  1. 构造函数模式
function Person (name, age, job){
      this.name = name;
      this.age = age;
      this.job = job;
}
var person = new Person("reg", "22", "software engineer");
  1. 原型模式
    function Person(){};
    Person.prototype.name = "reg";
    Person.prototype.age = 22;
    Person.prototype.job = "software enginer";
    var person1 = new Person();
    person1.name;      //"reg"

//更加简单的原型语句
Person.prototype= {
      name: "reg",
      age: 22,
      job: "software enginer"
}



## golang学习笔记
#### 基础组成
1. 包声明
2. 引入包
3. 函数
4. 变量
5. 语句&表达式
6. 注释 

package main //定义包的名称
import "fmt" //引入"fmt"包
func main(){ //函数开始执行的函数
fmt.Println("hello world!");
}


运行go程序:
go run test.go

变量声明:

/1指定变量类型,声明之后再赋值/
var v_name v_type;
var v_name = value;

/2直接赋值,自行判定变量类型/
var v_name = value;

/省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误/
v_name := valueE

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

推荐阅读更多精彩内容