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高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...
随机推荐
- drupal CMS
http://drupalchina.cn/ https://www.drupal.org
- 商品库存SKU
一种解决方案(性能垃圾,基本实现功能)商品表 属性集表 属性表 属性值表 SKU表 SKU选项表 属性集和属性之间的中间表表关系商品表 *--------------1 属性集表属性集表 *- ...
- 1025: [SCOI2009]游戏 - BZOJ
Description windy学会了一种游戏.对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应.最开始windy把数字按顺序1,2,3,……,N写一排在纸上.然后再在这一排下面写上它们对 ...
- Samza文档翻译 : Architecture
http://samza.incubator.apache.org/learn/documentation/0.7.0/introduction/architecture.html Samza由三层组 ...
- 快速排序(quicksort)算法实现
快速排序(quicksort)是分治法的典型例子,它的主要思想是将一个待排序的数组以数组的某一个元素X为轴,使这个轴的左侧元素都比X大,而右侧元素都比X小(从大到小排序).然后以这个X在变换后数组的位 ...
- POJ1002487-3279(map)
http://poj.org/problem?id=1002 题意:是说很多公司用了容易记住的电话号码,例如有英文字母的或者是用了很多连字符或没有连字符的.每个电话号码都有标准模式,而为了统计有没有重 ...
- hdu 4577 X-Boxes 大数
java水过…… 代码如下: import java.math.*; import java.util.*; public class Main { public static void main(S ...
- jsp关于include html、jsp等文件出现乱码问题的解决方案
一般来说使用jsp标签<jsp:include>引入一个jsp文件: ①可以在被引入的jsp中加入:<%@ page contentType="text/html;char ...
- 李洪强iOS开发之代理
如果A想让控制器B为他做事情 用代理的话 首先: 在A的.h文件中: 其次A的.m中 在控制器的.m文件中: 还是在控制器B的.m文件中 在A初始化的那一刻设置控制器B为A的代理 在B的.m中实现代 ...
- Discuz模版与插件 安装时提示“对不起,您安装的不是正版应用...”解决方法
关于出现“对不起,您安装的不是正版应用..”的解决办法 有些插件和风格在安装时出现不能安装的现象,出现以下提示: 对不起,您安装的不是正版应用,安装程序无法继续执行 点击这里安 ...