js笔记1
来源:互联网 发布:工业产品动画制作软件 编辑:程序博客网 时间:2024/06/17 14:22
1.变量声明
未var 声明的变量为全局变量
'use strict';
在js代码首行表示在strict模式下运行js代码
未var的变量会报错
2.变量类型
number
NaNInfinity
string
bool
对象
数组
null
undefined
多行字符串
233
344
222
map 数据类型
new Map()var m = new Map([['kk',100],['ww',2000]]);has()get()delete()set()
set 数据类型
new Set(['233','333']);add()delete()
literable
ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型
可以用
for(var i of a)
记住是of
与for in的区别
for in循环属性(array 对象)
for of 循环元素(set map array)
3.函数
function functionname(parameter){ //do something; }
3.1匿名函数
var x = function(parameter){}
x(parameter);
函数参数问题
自带 arguments关键字可以访问当前函数所有传入的参数,及时函数不需要这些参数
- 实际上arguments最常用于判断传入参数的个数
- ES6标准引入了rest参数
function abs(a,b,...rest){ console.log('a = ' + a); console.log('b = ' + b); console.log(rest);}
3.2箭头函数
var f = (x,y)=>y+x;alert(f(1,5));
3.3js行末自动加;
前面我们讲到了JavaScript引擎有一个在行末自动添加分号的机制
return a;
无法return
所以正确的多行写法是:
function foo() { return { // 这里不会自动加分号,因为{表示语句尚未结束 name: 'foo' };}
4.变量声明
变量提升
js扫描所有变量声明语句,提升到函数顶部
JavaScript引擎自动提升了变量的声明,但不会提升变量的赋值
全局
全局作用域
不在任何函数内定义的变量就具有全局作用域。实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性
var x =2333;console.log(window.x);
以变量方式var foo = function () {}定义的函数实际上也是一个全局变量,因此,顶层函数的定义也被视为一个全局变量,并绑定到window对象
'use strict';function foo() { alert('foo');}foo(); // 直接调用foo()window.foo(); // 通过window.foo()调用
局部作用域
由于JavaScript的变量作用域实际上是函数内部,我们在for循环等语句块中是无法定义具有局部作用域的变量的:
'use strict';function foo() { for (var i=0; i<100; i++) { // } i += 100; // 仍然可以引用变量i}
为了解决块级作用域,ES6引入了新的关键字let,用let替代var可以申明一个块级作用域的变量:
'use strict';function foo() { var sum = 0; for (let i=0; i<100; i++) { sum += i; } i += 1; // SyntaxError}
5.对象方法
在一个方法内部,this是一个特殊变量,它始终指向当前对象
给对象加方法
var people = { x:'222', y:function(){ alert("2333"); } } people.y();
在函数内部this指向window(use strict)或者undefined(未使用use strict
指定this指向的对象可以使用两种方法
1. apply
function.apply(object,array);//array is arguments
2.call
function.call(object,arguments);//one by one
6.闭包
创建一个匿名函数并且立刻执行
console.log(function(X){return X*X;}(3);//9
- JS学习笔记1
- JS学习笔记1
- js学习笔记1
- 菜鸟JS笔记1
- js学习笔记1
- HTML&JS笔记(1)
- JS学习笔记1
- js学习笔记1
- js对象笔记(1)
- js学习笔记1
- JS笔记1 -继承
- JS学习笔记1
- js笔记(1)
- js笔记1
- js学习笔记1
- JS学习笔记1
- js个人笔记1
- JS 学习笔记-1
- Servlet的再体验
- HTML/CSS重要知识集合(一)
- P2784 木块问题 本该用vector的.....
- Docker下,极速体验编译pinpoint1.6.x分支
- C语言静态链表的使用-源码
- js笔记1
- Linux命令之mv命令
- 三、统计学习理论:指示损失函数上的大数定理
- 畅通工程之局部最小花费问题(35 分)
- gamemaker学习笔记:提取runtime的地址
- dp复习
- 排座位(25 分)
- 2016年,上海的互联网企业是否值得加入?
- 深拷贝和浅拷贝