javascript笔记

1 语言特性

动态性:在使用的时候做赋值操作

var o=new objecty();

obj.name="";obj.say=function(){ return ""}  o.say();

弱类型

var

 

服务端的JS 

NODE.JS:提供了丰富的API来简化服务器端的网络编程。

基础:

js只有三种基本类型,string number boolean  typeof判断  instanceof进一步判断

 

对象类型

 

作用域  全局和局部  如果局部变量没有VAR 那就是全局

 

JS对象:借助JS的动态性,欻功能键一个空的对象,然后添加属性来完善对象的功能。

JSON:可以减少中间变量,是代码结构清晰,直观,动态的构件对象,而不必通过类来进行实例化。

 

原型对象:通过原型,可以建立继承。每个对象都有一个PROTOTYPE的属性,本身就是一个对象,所以它本身也有自己的原型,从而就构成了一个链结构。

this的值并非函数被声明而确定,而是被函数如何被调用而确定。

对象的声明有三种哦功能方式 new  原型 JSON

作用域链:一个函数中,作用域链会有两个对象,第一个为调用对象,第二个为全局对象。遍历链表,一直向上查找。

函数上下文:

函数内的this是可以变化的,函数可以作为一个对象的方法,也可以同时作为另一个对象的方法。

函数也是一种对象,可以通过function 对象上的call和apply来修改函数的上下文。

 

call和apply:call后面要跟参数,隔开,而apply则跟参数组成的数组,this指针将会被替换为第一个参数。

函数可以:赋值给一个变量,被赋值为对象的属性,作为参数被传入别的函数,作为函数的结果被返回。

 

数组的方法:concat()连接多个数组 join()数组所有元素放入一个字符串中 pop()删除返回数组的最后一个元素 push()向数组末尾添加一个或更多元素

 reverse()倒序 shift()删除并返回数组的第一个元素 slice()从某个已有的数组返回选定的元素 sort()对数组的元素进行排序 splice()删除元素,并添加新元素

 unshift() 开头添加一个或更多元素,返回新的长度valueof()返回数组对象的原始值。

数组属性length length可变

JS中的正则表达式:元字符 ^ $ *  + ? \b

范围及重复:[] [^] . \w所有字母 \W \s空白 \S \d数字 \D \b

var email=/^[\w-]+(\.[w-]+)*@[\w-]+(\.[\w-]+)+$/

 

[\w-]:所有字符,数字,下划线,减号 +表示这个集合至少重复一次 *至少重复零次或多次

使用正则:RegExp 对象的方法 test()  exec() compile()

 

string中的方法 match :返回匹配数组 replace slpit search:查找,返回首次位置

 

JS闭包,理解好作用域,函数为独立的对象

简单概念:函数是对象,对象是属性的集合,而属性又可以是对象,在函数内定义函数成为理所当然,如果在函数func内部声明函数inner,然后在函数外部调用inner,这个过程即产生了一个闭包。

闭包可以做什么:模拟面向对象的代码风格,编码更优雅,提升执行效率。

 

1 匿名函数,外部无法引用它的内部的变量,不会污染全局对象。

2 缓存 闭包不会释放外部的引用,从而函数内部的值可以得以保留

3 实现封装

 

应注意问题

内存泄漏

上下文引用

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值