Javscript高级
Javscript高级:
函数内部属性 arguments:
arguments(实参:包含所有传入方法的参数)特殊用法: arguments中有一个属性callee,是一个指针,指向拥有这个arguments对象的函数对象(就是当前函数对象的指针)。
例子:(阶乘函数)
function facorial(num)
{
if(num<=1) return 1;
else return num*factorial(num-1);//函数执行与函数名紧耦合在一起了
}
函数属性(区别于前页的内部属性):
每个函数对象包含两个属性:length 和 prototype(原型)
length代表函数定义的命名参数(形参)的个数。
function Pen(price){}alert(Pen.length);//1
prototype 是保存某个对象所有实例共享属性的地方。就是说,比如toString()和valueOf()等方法实际上都保存在prototype名下,只不过通过各自对象的实例访问罢了。
在创建自定义引用类型及实现继承时,prototype属性的作用是极为重要的。
函数属性(区别于前页的内部属性):
在使用call()方法时,必须明确地传入每一个参数。结果和apply一样。
其实apply和call真正的强大用途在于,能够扩充函数赖以运作的作用域:
window.color="red";
var o ={color:"blue"};
function sayColor(a,b){alert(this.color);}
sayColor();
sayColor.call(this,1,2);
sayColor.call(window,1,2);
sayColor.call(o,1,2);
这样扩充的最大好处,就是对象不需要与方法有任何耦合关系。
eval()方法:
它就像一个ECMAScript解析器,强大法力无边!它只接收一个参数,就是要执行的js代码字符串。
当解析器发现eval时,它会将传入的参数当作实际的js语句解析,然后把结果插入到原来位置。
通过eval执行的代码被认为是包含该次调用的执行环境的一部分
var msg="hello";
eval("alert(msg);");
eval("function sh(){alert('hi');}");
sh();
继承(寄生组合模式):
js主要通过原型链实现继承。原型链的构建通过将一个类型的实例赋值给另一个构造函数实现的。
执行环境和作用域:
执行环境(execution context):定义了变量或函数有权访问的其他数据,决定了它们各自的行为。环境中所有代码执行完毕后该环境被销毁。
每个执行环境都有一个与之关联的 变量对象,环境中定义的所有变量和函数都保存在这个对象中
全局执行环境(window对象)是最外围的执行环境。
每个函数在被调用时都会创建自己的执行环境:当执行流进入一个函数时,函数的环境创建并入栈。执行完后栈将环境推出,把控制权返回给之前的执行环境。
当代码在一个环境中执行时,会创建由变量对象构成的作用域链(scope chain)。用来保证对执行环境 有权访问的所有变量和函数的有序访问。作用域链前端始终是当前执行环境的变量对象。全局执行环境的变量对象始终都是作用域链的最后一个。
泛型:
1.泛型集合:
List< T> Dictionary< k,v> IQueryabl< T>
2.为什么不提倡使用ArrayList的原因?
2.1是因为ArrayList内部存储数据的是一个object数组,如果在ArrayList中存储数据类型,会出现装箱和拆箱,从而影响服务器性能.
2.2 类型安全问题:因为ArrayList中所有元素都以object存储,那么在取出元素使用时,也是作为object类型取出,需要做转型;如果不转型,则容易
泛型方法:
泛型内置方法 转型 Cast:
泛型内置方法 按类型筛选集合元素 OfType:
自己转型的方法:
程序集 .exe .dll:
1.程序集是什么:就是源代码编译成IL后的中间代码文件.
2.当程序执行时,虚拟机会从硬盘中加载程序集的代码内容,然后按照代码的语法获取信息,并将每个类的信息,并为每个类单独创建一个Type类的对象,用来存储类的信息(包括:成员变量,构造函数,方法).
所有.Net类都是定义在某个Assembly(程序集)中的,.Net基本类是定义在mscorlib.dll中。exe也可以看做是类库,也可以引用。.net的exe也是Assembly,.net中的exe和dll的区别就是exe中包含入口函数,其他没有区别,exe也可以当成dll那样引用、也可以反编译。
GAC:全局程序集缓存。公用的Assembly放到GAC中。(*)
Assembly类是对Assembly的描述(*)。
AppDomain.CurrentDomain.GetAssemblies()获得程序所有的Assembly
Assembly.LoadFile(),动态从文件加载Assembly,不需要在编译的时候引用。
Javscript高级的更多相关文章
- JavaScript高级编程 (1) - javscript是什么
<重温javascript>这是一系列 javascript 的学习笔记,部分内容摘自书本或者网络,我这里只是基于自己的理解进行了梳理整理. 一个完整的 javscript 实现是由以下3 ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)
马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...
- JS高级前端开发群加群说明及如何晋级
JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- Visual Studio 宏的高级用法
因为自 Visual Studio 2012 开始,微软已经取消了对宏的支持,所以本篇文章所述内容只适用于 Visual Studio 2010 或更早期版本的 VS. 在上一篇中,我已经介绍了如何编 ...
- [译]基于GPU的体渲染高级技术之raycasting算法
[译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...
- 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)
招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司-上海运图贸易有限公司 招聘岗位:.NET高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...
随机推荐
- 【iOS】init,loadView,viewDidLoad加载关系
一.loadView 永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数. ...
- springmvc+json
1.在写我的springmvc demo时,由于要向前台返回相关信息,于是设置了@ResponseBody,但是要把对象转换成json格式,我却没有在xml文件里配置,所以报如下错误:HttpMedi ...
- 元素属性和js数组
arrObj.push(数组元素) --增加arrObj.splice(index,howmany)--删除 一般howmany为1, index,开始截取掉的位置,arrObj[index].P ...
- Elasticsearch升级至1.x后API的变化-三
请支持原创:http://www.cnblogs.com/donlianli/p/3841762.html 1.索引格式 1.x之前的版本,被索引的文档type会同时出现在url和传输的数据格式中 ...
- HTTP幂等性
http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.html 理解HTTP幂等性 基于HTTP协议的Web API是时下最为 ...
- 10个CSS简写/优化技巧
CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS 简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅 读. 下面介绍常见的CSS简写规则 ...
- The 7th Zhejiang Provincial Collegiate Programming Contest->Problem G:G - Wu Xing
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3328 至今未看懂题意,未编译直接提交,然后 A了.莫名AC总感觉怪怪的. ...
- DLL远程注入与卸载
以下提供两个函数,分别用于向其它进程注入和卸载指定DLL模块.支持Unicode编码. #include <windows.h>#include <tchar.h>#inclu ...
- linux 使用kill命令杀死进程的几个办法
常规篇: 首先,用ps查看进程,方法如下: $ ps -ef ……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx ...
- [itint5]交替字符串
http://www.itint5.com/oj/#17 DP.注意曾经把赋值写成了==,结果出错半天. bool isInterleaving(string &str1, string &a ...