无标题文章

# javascript 笔记

## 1

- confign (sudo)

- node

- npm init ->

- npm install gulp-cli -g

- npm install gulp gulp-eslint eslint --save-dev

- cp uses/gulfile.js .

- gulp lint 执行gulp lint下的命令

- vi t.ts

- gulp ts -> 转为js

## 1

- 建一个项目 就需要一个目录(所有开发的代码)

- 自定义的配置(gulp babel etc)

- 调试代码

- type

- primitive

- number string bool null undefined -> stack

- reference

- array function object -> heap

- stack vs heap -> javas.object 1.2

- thread the smallest sequence of programmed...

- var vs let 阮一峰

- python a = 1 b = 1 vs js .. object

- python

---

>>> a = 1

>>> b = a

>>> id(a)

140520881953992

>>> id(b)

140520881953992

>>> b = 2

>>> id(b)

140520881953968

>>> id(a)

140520881953992

- 可变 VS 不可变

- js 原始不可变

- python 数值 字符串 元组

- chrome -更多工具 开发者工具

- addition emmet

- alias jsc='/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc'

# Chapter 2

- 强类型 vs 弱类型

-- var a:number = 1;

- var vs let

-- 可以定义两次变量 ?

- pythontutor

- var 和函数 在编译的时候会放在前面,let不放在前面

- 变量第一个不能是数字,无法和数字进行区分

- Array.isArray

- 0 ->8 0x->16 0b->2

- parseInt('number', jinzhi) ----> 10

- a = number; a.tostring(jinzhi);

- NaN != NaN;

- Number.isNaN vs isNaN()

- 10 * 'f' --> NaN

- console.log(isNaN('test')) -> true

- console..(Number.isNaN('test')) -> false

- parseInt("100 djfkj") -> 100

- + "100 ddd" -> NaN

- boolean({}) - > true

- var b = b && 1; //b underfined

- var b = 10; ..... b = 1;

- 事实上就是看运行到什么地方,返回给最后一个

- var a = b = 1; x

-- 先运行b = 1,有了返回值然后a = 返回值;

# Chapter 3

-  function arguments

- 变量默认var 全局变量

```

var a = 123;

function f() {

var a; // same as: var a = undefined;

alert(a); // undefined

a = 1;

alert(a); // 1

}

```

function a() {

alert('A!');

a = function () {

alert('B!');

};

}

第一次是A!,以后每次都是B!

- var a = "global variable";

var F = function ()  {

var b = "local variable";

var N = function () {

var c = "inner local";

};

};

- 数组序号存储在堆里面,序号代表偏移区间

var a = 0;

if (a) {

function aname() {

// keyibeidiaoyong

}

}

- arguments[]  //  类似数组

- Array.prototype.silce(arguemnts)

- 函数的定义是放在最前面的

- aname.length() 行餐叔 arguemtns()给了几个参数

- var c = Array.prototype.slice.call(arguments);

console.log(c.reduce(function(a, b)))

- 函数的参数的作用域是夹在out && in

- rest parameters ...quotes

- spread operator

- apply call bind

- 在let a之前 调用a是错误的

- Constants are block-scoped just like variables created    using the let keyword

- Functions are data

- a()() 直接执行函数和她的返回值 p98

- a() 只返回链接

- imiediate function返回链接的话可以直接执行

- three scope

-- global, function, code block(let,const)

-- global 运行在浏览器,所有的变量或者方法属于windows这个对象

-- var a = 1; console.log(a); console.log(windows.a)

-- setTimeout & setInterval

-- closure

```

var a = 1;

function aname() {

var a = 2;  // a = 2

console.log(a);

}

aname(); // 2 , 1

```

```

var a = 1;

function aname(a) {

var a = 2;  //. a = 2

console.log(a);

}

aname();

console.log(a) // 2, 1

// 函数参数是函数内部的变量,between outer and inner。。

```

```

var a = [1, 2, 3];

function aname(a) {

a[1] = 5;

console.log(a[1]);

}

aname(a);

console.log(a[1]); // 5, 5

```

```

f = function (i) {return i;}

function (i) {return i;}

for (var i = 0; i < 3; i++) {

b[i] = f(i)

}

2

b

(3) [0, 1, 2]

```

两种区别

---

myTest();

test  //. 都会报错,这种方式不能在函数之前调用

var myTest = function test() {

console.log("Hello World");

}

---

- var a = 1;  // 没有返回值 add b = a 返回值是1

- a = true && b=5; //. a = 5

- javascript reduce

- parseInt(1e-2)//。0

# chapter 4

```

var original = {howmany: 100};

var nullify = function (o) { o.howmany = 0; };

nullify(original);

original.howmany;

> 0

```

你可能感兴趣的:(无标题文章)