javascript 高级程序设计 八
function 类型:
1、ECMAscript中函数和类C语言的函数有这很多不同。其中之一就是js的函数没有重载。并且多次定义一个同名的函数,当调用这个函数的时候,
会调用最后一次定义的函数。
2、函数声明与函数表达式
js解析器会先读取函数声明function sum(){...},并使其在执行任何代码之前使其可用,以便调用。而函数表达式var sum = fuction(){...}必须等
到解析器执行到它所在行的代码时,才会真的被解析执行。
3、函数内部属性
在函数的内部有两个特殊的对象:arguments和this,
arguments代表的是传入函数体中参数的组合(类型一个数组,保存着这个函数所有的参数),这个对象还有另一个callee属性。calle是一个指针-
指向拥有这个arguments对象的函数。
ep:在第归算法中,为了避免后期改变了函数名,而忘记修改第归函数中的函数名的情况。可以用这个方式实现第归
function factorial(num){
if(num <= 1){
return 1;
}else{
return num * arguments.callee(num - 1);
}
}
这样可以保证无论使用怎样的第归函数的名字都可以完成第归的调用。
this:和java、c#等函数中的this大概类似,this代表调用函数的调用者的环境变量。
因为函数在js中也是对象,所以每个函数都有两个属性:prototype和length。
prototype:指的是函数的原型。prototype是保存所有实例方法的真正所在,利用toString(),valueOf()方法都是在prototype下,
只不过是通过各自的实例对象访问罢了。
length:指的是函数希望接受的参数的个数,而不一定是实际接受的参数的个数。
function中还有两个非继承来的方法:apply(),call();(主要目的是扩展函数赖以运行的作用域)
function sum(num1, num2){
return num1 + num2;
}
function callSum(num1, num2){
return sum.apply(this, arguments);//apply(函数运行的作用域,参数数组);
//return sum.apply(this, [num1, num2]);
}
call()和apply()是一样的,只是接受的参数不同,apply接受的是参时的数组,call接受的是直接传递参数:sum.call(this,num1,num2);
4、基本包装类型
在js中只有三个基本类型(Bollean,Number,String).不是对象,其他的所有的js中的内容都是基于对象的。
当我们定义一个var str = "String";其实是执行了三个步骤:1、创建String类型的一个实例。2、在实例上调用指定的方法。3、销毁这个实例。
由上可得到基本包装对象和引用类型的主要区别是:使用new创建的基本包装对象,在执行流离开当前作用域之前都是一直存在的,而基本包装
类型的对象,则只存在一行代码执行的瞬间,然后就销毁了。这意味着我们不能在执行时为基本数据类型添加属性和方法。
5、Global对象
Global对象中的最主要的几个方法:
1、encodeURI和encodeURIComponent()的原因所在。
encodeURI是对整个URI进行url编码。而encodeURIComponent只是对URI后面的字符(也就是参数)进行URL编码。(常用)
2、eval()
eval()就像一个完整的js解析器,可以将一些字符串解析成为JS可以识别的代码。如var a = "[obj1 = {name: 1,age: 2},obj2 = {name: 2,age: 4}]";eval(a);
就可以把a这个字符串解析成为一个数组。在接受服务器端传过来的json字符串的时候非常有用。
javascript 高级程序设计 八的更多相关文章
- JavaScript高级程序设计(八):基本概念--操作符
操作符包括:算术操作符.位操作符.关系操作符和相等操作符. 一元操作符 1.只能操作一个值得操作符,即递增和递减操作符: 2.递增(++)和递减(--)操作符包括:前置型和后置型.前置型位于要操作的变 ...
- javascript高级程序设计学习笔记
javascript高级程序设计,当枕头书已经好久了~zz 现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...
- <JavaScript>如何阅读《JavaScript高级程序设计》(一)
题外话 最近在看<JavaScript高级程序设计>这本书,面对着700多页的厚书籍,心里有点压力,所以我决定梳理一下..探究一下到底怎么读这本书.本书的内容好像只有到ES5...所以只能 ...
- 如何阅读《JavaScript高级程序设计》(一)
题外话 最近在看<JavaScript高级程序设计>这本书,面对着700多页的厚书籍,心里有点压力,所以我决定梳理一下..探究一下到底怎么读这本书.本书的内容好像只有到ES5...所以只能 ...
- 《JavaScript高级程序设计(第3版)》笔记-序
很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 【javascript学习——《javascript高级程序设计》笔记】DOM操作
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...
- 读javascript高级程序设计00-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
- 《JavaScript高级程序设计》读书笔记--前言
起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...
随机推荐
- 修改maven项目的编译版本
在pom.xml中添加如下代码 <build> <!-- 配置了很多插件 --> <plugins> <plugin> <groupId>o ...
- js基础-对象
对象是一组属性方法的无序集 除了字符串.数值类型.布尔类型.null.undefined 之外的其他都是对象类型 对象都是引用类型 Object类型对象.数组类型对象 如果一个普通函数前面加了new ...
- R语言-直方图
1.直方图 直方图和柱形图的区别:直方图表示频数,柱形图表示数量. 一般直方图的X轴表示取值范围,Y轴表示频数 hist() 函数 > hist(rnorm(1000)) #1000个正态随机数 ...
- Python算法(一)冒泡排序
3 5 1 6 2 1)第一次:找到这些数中最大的一个,并把它放最后. 3.5找到大的数放到第二个位置 5.1找到大的数放到第三个位置 5.6找到大的数放到第四个位置 2.6找到大的数放大第五个位置 ...
- 函数putText()在图片上写文字
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...
- linux下安装Cmake和Sniffles
-------------------------------------------------------------------cmake的安装------------------------- ...
- VR/AR 科技了解
Dream学院学习资料: VR/AR科技学习需要先学习NDK技术 AR/VR->图像学->图像处理(OpenCV->Intel公司在1999年发布3.2).图像绘制渲染(OpenGL ...
- StringBuild类
每次拼接都会产生新的字符串对象,从而产生很多废弃的垃圾,拼的越多,垃圾越多,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器 StringBuilder ...
- metasploit framework(十五):弱点扫描
openvas扫描生成NBE格式的日志 改个比较好记的文件名 将日志导入到msf进行后续操作,导入之前查看一下hosts和services 导入nbe格式的文件 查看漏洞弱点 msf直接调用nessu ...
- kali安装显卡驱动
由于我们使用cpu一般最多也就是4到16核,而一块不错的gpu可以多大上千核,在并行复杂运算能力上GPU的运算速度远远超过CPU的运算速度,所以很多场合比如暴力穷举破解,挖矿更多地使用GPU,所以有必 ...