付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaScript.No1
(ECMA5核心+设计模式)讲师:白贺翔.JavaScript简介javascript诞生于1995年,当时他的主要目的就是处理以前由服务器语言负责的一些输入验证操作。在javascript问世之前,必须把表单里的数据发送到服务器才能确定用户是否没有填写某个必填域或者是输入信息是否正确。Javascript课程大纲(一)第一讲:初识Javascriptjavascript的组成部分如何使用javascript第二讲:基本概念语法变量基本数据类型控制语句等第三讲:引用类型数组数组ECMA5新特性Object类型型应用模拟高级语言对象(java容器模拟)数组的技巧(经典数组操作技巧)其他引用类型(单体类型)Javascript课程大纲(二)第四讲:函数函数概念定义函数的三种方式函数参数arguments对象this对象call和apply高级函数执行环境概念作用域链概念javascript垃圾收集机制块级作用域闭包函数Javascript课程大纲(三)第五讲:面向对象程序设计类的创建实例对象的三种方式原型的概念,为什么需要原型原型常用方法实现自己的原型扩展方法简单原型对象原型对象的常用开发模式(组合、寄生、动态原型、稳妥对象)深入继承的解析(javascript继承实现的关键解析)常用三种继承模式(原型继承、借用构造函数继承、混合继承)模拟extjs4.1底层继承代码Javascript课程大纲(四)第六讲:设计模式javascript如何使用接口创建接口的三种方式(注解描述、属性检测、鸭式辨型)接口的使用场景说明(接口的利弊)单体模式(四种常见的单体模式)javaScript中实现链式编程模拟jquery底层代码实现链式编程JavaScript设计模式:1工厂模式(实现简单工厂、js如何使用抽象类、复杂动态工厂)2桥接模式(事件监听回调机制、特权函数、组织多个单元)3组合模式(面向对象实现多级关系、组合模式实现多级关系)4门面模式(我们最熟悉的设计模式--->门面模式)Javascript课程大纲(五)第六讲:设计模式(续)5适配器模式(适配不同的接口与类、适配js库)6装饰者模式(用新对象包装原始对象,扩展其方法和属性)7享元模式(实现优化的设计模式,web日历的优化)8代理模式(代理模式的概念及虚拟代理使用)9观察者模式(观察者模式的模拟)10命令模式(命令模式+HTML5的应用)11责任链模式(理解责任链的概念、内部调用的形式)第一讲:初识Javascript学习目标了解javascript组成部分认识javascript解析机制如何使用javascript第一讲:1.1初识Javascriptjavascript是一种专为与网页交互儿设计的脚本语言。由三部分组成:ECMAScript(ECMA-262定义)提供核心语言功能文档对象模型(DOM)提供访问和操作网页内容的方法和接口浏览器对象模型(BOM)提供与浏览器交互的方法和接口Javascript的这三个组成部分在当前五大主流浏览器中都得到了不同程度的支持(IE、FireFox、Chrome、Safari、Opera)。基本所有的浏览器都大体上支持ECMAScript第三版。但是对于DOM和BOM的支持相比较而言则差很多。第一讲:1.2初识Javascript对JavaScript是一种可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执行。javascript是一种解释型语言(预编译、执行)Javascript的国际标准是ECMAScript.语法、类型、语句、关键字、保留字、操作符、对象如何使用javascript?在HTML文档中插入脚本语言可以使用<script>标记<script>标记可以置于页面任意位置,一般定义在<head>标签中<script>标记属性!type、src、defer、charset第二讲:基本概念学习目标认识变量(声明、规则、全局变量、局部变量)数据类型(基本类型、引用类型)运算符、表达式、控制语句第二讲:2.1变量变量JavaScript是一种弱类型的脚本语言varc=3;即变量的声明(变量使用之前必须加var声明,编程规范)变量的命名规则!1.变量命名必须以字母或是下标符号”_”或者”$”为开头。2.变量名长度不能超过255个字符。3.变量名中不允许使用空格。4.不用使用脚本语言中保留的关键字及保留符号作为变量名。5.变量名区分大小写。(javascript是区分大小写的语言)全局变量在方法外部声明的变量方法内部,没有加var关键字声明的变量局部变量方法内部,使用var声明的变量第二讲:2.2数据类型ECMAScript中,数据类型也分为基本类型和引用类型两大类.基本数据类型:Number、Boolean、String、Undefined、NullNumber:整数和小数(最高精度17位小数)、NaN、Infinity,-Infinity 注意:1.除10进制外,还可通过8进制和16进制的字面值来表示,如 070表示56、0xA表示10. 2.小数为浮点类型,if(a+b==0.3)//不要做这样的测试,因为 浮点数值最高精度是17位,而是0..Undefined:表示变量声明但未赋值.Null:表示一个空的对象引用(也就是赋值为null)引用类型:Object类型(比如对象、数组、RegExp、Date...)Typeof操作符基本类型和引用类型的值基本类型是按照值访问的,因为可以操作保存在变量中的实际值引用类型则是按引用去访问的第二讲:2.3运算符运算符与表达式:加减乘除、递增(++)、递减(--)、求余(%)变量的自动转换===等同符:不会发生类型的自动转化!==等值符:会发生类型自动转化、自动匹配!在程序中还经常使用到扩展赋值运算符,如:+=,-=,*=,/=,%=等说明符号加法+减法-乘法*除法/增量++减量--取余%第二讲:2.3运算符在复杂的表达式中往往会综合运用各种不同类型的运算符,而表达式的运算顺序有一定的规则:首先应按照运算符的优先次序从高到低的顺序,其次,优先级相同的运算符按照事先约定的结合方向(从左向右或从右向左)进行。条件表达式的基本的语法是:(条件表达式1)?表达式2:表达式3说明符号相等==大于或等于>=大于>不等!=小于或等于<=小于<逻辑“与”&&逻辑“或”||逻辑“非”!第二讲:2.4控制语句基本上ECMAScript的控制语句和java一致if语句if(条件)…elseif(条件)...elseswitch语句:switch(expression){caseconst1:语句块1...default:...}for(初始化部分;条件部分;更新部分){语句块…}while(条件){语句块…}do{语句块…}while(条件)break语句是结束当前的循环,并把程序的控制权交给循环的下一条语句 这里是结束循环,循环到此为止continue语句是结束当前的某一次循环,但是并没有跳出整个的循环。这里是结束一次循环,整个循环还在进行
(label.with)第三讲:引用类型学习目标掌握数组的概念、特性、常用方法掌握Object,学会使用对象了解其他引用类型对象第三讲:3.1数组在ECMAScript中数组是非常常用的引用类型了。ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组也是一种对象。特点:“数组”即一组数据的集合。js数组更加类似java的容器。长度可变,元素类型也可以不同!数组长度随时可变!随时可以修改!(length属性)常用方法:push、popshift、unshiftsplice、sliceconcat、join、sort、reverse等第三讲:3.1数组补充对于ECMAscript5这个版本的Array新特性补充:位置方法:indexOflastIndexOf迭代方法:everyfilterforEachsomemap缩小方法:reducereduceRight第三讲:3.2Object我们目前为止大多数引用类型都是Object类型的实例,Object也是ECMAScript中使用最多的一种类型(就像java.lang.Object一样,Object类型是所有它的实例的基础)。Object类型的创建方式、使用对于Object类型应用forin枚举循环Object每个实例都会具有下列属性和方法:Constructor:保存着用于创建当前对象的函数。(构造函数)hasOwnProperty(propertyName):用于检测给定的属性在当前对象实例中(而不是原型中)是否存在。isPrototypeOf(Object):用于检查传入的对象是否是另外一个对象的原型。propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。toLocaleString():返回对象的字符串表示。该字符串与执行环境的地区对应.toString():返回对象的字符串表示。valueOf():返回对象的字符串、数值或布尔表示。第三讲:3.2Object(应用)简单实现JAVA中Map利用js对象的特性,去掉数组中的重复项第三讲:3.3其他引用类型对象单体对象:Global对象(全局)这个对象不存在,无形的对象其内部定义了一些方法和属性:encodeURI、ponent、decodeURI、ponent、eval、parseInt、parseFloat、isNaN、Escape、unescapeMath对象内置的Math对象可以用来处理各种数学运算可以直接调用的方法:Math.数学函数(参数)求随机数方法:Math.random(),产生[0,1)范围一个任意数Date对象获取当前时间的一系列详细方法基本包装类型:Boolean、String、Number和java的用法类似Function类型、RegExp类型(以后学习)第四讲:函数学习目标了解函数的基本概念函数的定义方式函数的参数thiscall、apply执行环境、作用域链垃圾收集、块级作用域closure第四讲:4.1初识函数Function类型,即函数的类型。一个典型的JavaScript函数定义如下:function函数名称(参数表){ 函数执行部分:}注意:参数列表直接写形参名即可,不用写var!return语句:return返回函数的返回值并结束函数运行函数也可以看做数据来进行传递第四讲:4.2定义函数三种定义函数的方式:function语句形式函数直接量形式通过Function构造函数形式定义函数比较三种方式定义的区别:function语句Function构造函数函数直接量兼容完全js1.1以上js1.2以上版本形式句子表达式表达式名称有名匿名匿名性质静态动态静态解析时机优先解析顺序解析顺序解析作用域具有函数的作用域顶级函数(顶级作用域)具有函数作用域第四讲:4.2示例1效率方面vard1=newDate();vart1=d1.getTime();for(vari=0;i<100000;i++){ //functiontest1(){;} //vartest2=newFunction();}vard2=newDate();vart2=d2.getTime();alert(t2-t1);第四讲:4.2示例2解析顺序functionf(){return1;} //函数1 alert(f()); //返回值为4说明第1个函数被第4个函数覆盖 varf=newFunction("return2;"); //函数2alert(f()); //返回值为2说明第4个函数被第2个函数覆盖varf=function(){return3;} //函数3alert(f()); //返回值为3说明第2个函数被第3个函数覆盖 functionf(){return4;} //函数4alert(f()); //返回值为3说明第4个函数被第3个函数覆盖varf=newFunction("return5"); //函数5alert(f()); //返回值为5说明第3个函数被第5个函数覆盖 varf=function(){return6;} //函数6alert(f()); //返回值为6说明第5个函数被第6个函数覆盖第四讲:4.2示例3作用域方面vark=1;functiont1(){ vark=2; //functiontest(){returnk;} //vartest=function(){returnk}; //vartest=newFunction('returnk;'); alert(test());}t1();第四讲:4.3函数的参数函数的参数:arguments对象 arguments是表示函数的实际参数(与形参无关)callee函数(回调函数属性) arguments对象的秘密属性callee属性: 这个属性比较奇怪,他能返回arguments对象所属的函数的引用,这相当于在自己的内部调用自己。 用法:例如检测函数传递的参数正确与否第四讲:4.3示例关于程序的严谨性functionfact(num){ if(num<=1)return1; elsereturnnum*fact(num-1);}注这是一个典型的递归实现阶乘函数,虽然表面上看起来没什么问题是如果采用下面代码就会导致程序错误varanotherFact=fact;fact=null;alert(anotherFact(4));//出错!!第四讲:4.4thisthis对象是在运行时基于函数的执行环境绑定的。在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。也就是说this关键字总是指代调用者。第四讲:4.5call、apply每一个函数都包含两个非继承而来的方法:call、apply。这俩个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。call、apply的用途之一就是传递参数,但事实上,它们真正强大的地方式能够扩充函数赖以运行的作用域。使用call()、aplly()来扩充作用域的最大好处就是对象不需要与方法有任何耦合关系。call方法简单的实现。第四讲:4.6执行环境、作用域链执行环境(executioncontext)是javascript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每一个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。虽然我们的代码无法访问这个对象,但是解析器在处理数据时会在后台执行它。全局执行环境是最外围的一个执行环境。根据ECMScript实现所在的宿主环境不同,表示执行环境的对象也不一样。每一个函数都有自己的执行环境。当执行流进一个函数时,函数的环境就会被推入一个环境栈中。而在函数执行之后,栈将其环境弹出,把控制权返还给之前的执行环境。当代码在一个环境中执行时,会创建变量对象的一个作用域链(scopechain)。作用域链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。第四讲:作用域链示例varcolor1="blue";functionchangeColor(){ varcolor2="red"; functionswapColor(){ varcolor3=color2; color2=color1; color1=color3; //这里可以访问:color1、2、3 } //这里可以访问color1、color2、但不能访问color3 swapColor();}//这里只能访问color1changeColor();第四讲:4.7垃圾收集、块级作用域javascript是一门具有自动垃圾收集机制的编程语言。开发人员不必关心内存分配和回收问题。离开作用域的值将被自动标记为可以回收,因此将在垃圾收集期间被删除。标记清除是目前主流的垃圾收集算法。这种算法的思想是给当前不使用的值加上标记,然后回收其内存。javascript里面没有块级作用域的概念,和C、JAVA等高级语言不同。所以在使用if、for时候要格外的小心。javascript模拟块级作用域第四讲:4.8Closure(闭包)概念:闭包与函数有着紧密的关系,它是函数的代码在运行过程中的一个动态环境,是一个运行期的、动态的概念。所谓闭包,是指词法表示包括不必计算的变量的函数。也就是说,该函数能够使用函数外定义的变量.。在程序语言中,所谓闭包,是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留他们在闭包最初定义(或创建)时的值。第四讲:4.8理解作用域链要理解闭包,首先第一点,必须要对于作用域链的概念非常的清楚。varname="xiaoA";varobj={name:"xiaoB";getName:function(){ returnfunction(){ ; } }};alert(obj.getName()());第四讲:闭包示例functionf(x){ vartemp=x; returnfunction(x){ temp+=x; alert(temp); }} vara=f(50); a(5); a(10); a(20);第五讲:面向对象程序设计学习目标:了解面向对象程序的特点学会JS模拟面向对象的方式理解prototype及其相关应用模型理解继承了解常用设计模式第五讲:5.1面向对象程序设计面向对象的语言有一个标志,那就是他们都有类的概念,通过类可以创建任意多个具有相同属性和方法的对象。但是在ECMAScript中没有类的概念,但是我们可以通过其他方式来模拟面向对象的类。工厂模式:工厂模式是软件工厂领域中一种广为人知的设计模式。构造函数模式:比如像ECMAScript中的Array、Object、Date等都是通过构造函数来创建的。第五讲:5.2原型我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。原型对象实际就是一个构造函数的实例对象,与普通的实例对象没有什么本质上的区别,js中每一个对象都有一个原型对象。不过他比较特殊,该对象所包含的所有属性和方法能够供构造函数的所有实例共享,这就是其他语言所说的继承,而javascript通过原型对象来实现继承,简称原型继承。静态原型继承:Ototype.[methodfield];isPrototypeOf(实例对象)判断原型的方法ECMA5:Object.getPrototypeOf():根据实例对象获得原型对象object.hasOwnProperty(attribute)判断属性是否属于对象本身in操作符判断对象中是否存在该属性(无论是实例对象还是原型对象)ECMA5新特性Object.keys();拿到当前对象里的所有keys返回一个数组ECMA5新特性Object.getOwnPropertyNames枚举对象所有的属性:不管该内部属性能否被枚举第五讲:5.2原型图例
29prototypeprototypeprototypeperson1person2PersonPrototypeconstructornameageVooPerson(function)sayName第五讲:5.3原型示例练习原型的另外一个作用就是扩展对象中的属性和方法的模拟Array中each循环方法类似ECMA中的forEach方法第五讲:5.4简单原型之前我们已经学过了原型如何使用,那么现在我们介绍一种简单原型的使用方式:即直接通过对象字面量来重写整个原型对象(这种方法会改变原型对象的构造器)ECMA5中的Object.defineProperty()方法可以为原型对象重新加入构造器。原型的动态性(注意原型和创建实例的前后顺序)第五讲:5.5原型对象存在的问题原型对象虽然可以对所有实例的属性和方法共享,但是它的局限性也是很明显的,正是因为共享的特性,也导致原型存在的最大问题。我们一般组合使用构造函数式和原型模式,在实际开发中,这种模式也是应用的最为广泛。动态原型模式:就是把信息都封装到函数中,这样体现了封装的概念。稳妥构造函数式:所谓稳妥模式就是没有公共属性,而且其他方法也不引用this对象,稳妥模式最适合在安全的环境中使用。如果你的程序对于安全性要求很高,那么非常适合这种模式。第五讲:5.6继承我们都知道构造函数、原型和实例直接的关系,如果我们让原型对象等于另一个类型的实例,结果会怎么样呢?显然此时的原型对象将包含一个指向另一个原型的指针,相应的另一个原型中也包含着一个指向另一个构造函数的指针。原型链:利用原型让一个引用类型继承另外一个引用类型的属性和方法。简单继承(原型继承)类继承(模版继承或借用构造函数继承)混合使用继承实现完整的继承第五讲5.7原型链示意图
prototypeprototypeprototypeSubinstanceSuperPrototypeconstructormethod1functionSuperSubPrototypeprototypemethod2function第五讲5.8继承示例经典继承方法实现(模拟extjs底层继承机制)第六讲设计模式学习目标:了解接口的概念,接口的意义,接口的应用单体模式函数的链式调用详解常用设计模式第六讲6.1接口接口是面向对象javascript程序员的工具箱中最有用的工具之一,那么对于javascript没有定义接口的概念,我们通过模拟高级程序语言的方式来创建javascript中的接口。接口的概念:提供一种以说明一个对象应该有哪些方法的手段。第六讲6.2建立接口的三种方式通常建立javascript接口有三种方式:1注释描述接口2属性检测接口3鸭式辩型接口接口的利弊:对于一些中小型程序来说使用接口很显然是不明智的,对项目来说接口的好处也不明显,只是徒增其复杂度而已。对于接口的好处,那么显而易见首先促进代码的重用,对于开发来讲,还可以告诉程序员那些类都使用了什么方法,如果你事先知道接口那么就减少了你在编码的时候对类与类之间冲突,实现解耦。对于测试和调试也会变得轻松,用于javascript的弱类型语言,类型不匹配经常出现,那么使用接口,这一点会变得容易一些。第六讲6.3单体模式单体(singleton)模式是javascript中最基本但又最有用的模式之一,它可能比其他任何模式都常用。这种模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的变量进行访问。通过确保单体对象只存在一份实例,你就可以确信自己的所有代码使用的都是同样的全局资源。简单单体闭包单体惰性单体分支单体第六讲6.4函数的链式调用javascript对方法进行链式调用的能力。如果大家对jquery有一定了解,那么很明显你一定知道这是一个什么意义。简单链式调用。returnthis;模拟jquery底层链式调用。第六讲6.5设计模式对于设计模式,我相信大家都听说过至少几种以上,那么javascript里面给我们提供了很多种设计模式:工厂、桥、组合、门面、适配器、装饰者、享元、代理、观察者、命令、责任链。这些设计模式相信大家都耳熟能详。那么现在我们就一起来体验下叫javascript设计模式魅力!第六讲6.6工厂模式对于工厂模式,我相信大家都多多少少有一些了解,其核心就是为了生产对象,实现解耦。那么对于javaScript而言,一个类或对象中往往会包含别的对象,我们创建这样成员对象时,可能习惯采用new关键字或构造函数的方式,这样会导致两个类之间产生依赖关系,所以我们通常要需要工厂模式,创建一个工厂来管理他们的实例过程,这样可以控制程序,使我们的程序更加的面向对象、多态化。实现简单工厂js中实现抽象类的概念,实现复杂的动态工厂第六讲6.7桥接模式桥接模式是一种既能把两个对象连接在一起,又能避免二者间的强耦合的方法。通过“桥”把彼此联系起来,同时又允许他们各自独立变化。主要作用表现为将抽象与其实现隔离开来,以便二者独立化。桥接实例:事件监听回调机制特权函数桥接组织多个单元第六讲6.8组合模式(一)组合模式是一种专门为创建Web上的动态用户界面而量身制定的模式。使用这种模式可以用一条命令在多个对象上激发复杂的或递归的行为。这可以简化粘合性代码,使其更容易维护,而那些复杂行为则被委托给各个对象。组合模式的好处:1你可以用同样的方法处理对象的集合与其中的特定子对象。2它可以用来把一批子对象组织成树形结构,并且使整棵树都可以被遍历。第六讲6.8组合模式(二)组合对象的结构总公司分公司2分公司1分公司1部门1分公司1部门2分公司1部门3分公司2部门1分公司2部门2分公司2部门3第六讲6.8组合模式(三)组合模式的使用场景:1存在一批组织成某种层次体系的对象2希望对这批对象或其中的一部分对象实施一个操作。组合模式的特点:组合模式中只有两种类型对象:组合对象、叶子对象这两种类型都实现同一批接口一般我们会在组合对象中调用其方法并隐式调用"下级对象"的方法(这里我们一般采用递归的形式去做)第六讲6.9门面模式门面模式(facade)一般有两个作用:简化类的接口消除类与使用它的客户代码之间的耦合。门面模式常常是开发人员最亲密的朋友。它几乎是所有javascript库的核心原则。门面模式的目的是为了让开发人员用更简单的方法调用一些相对复杂或组合的方法,主要就是简化开发的复杂性,提供一个相对容易的API去调用内部的方法供外界去使用,这样程序员开发会变得轻松些,编写一次组合代码后可以反复的去使用它,有助于节省时间和精力。当然也不要滥用门面模式,所以使用你心仪的门面之前一定要三思而定,搞不好你就会小题大做。第六讲6.10适配器模式适配器模式可用来在现有的接口和不兼容的类之间进行适配。使用这种模式的对象又叫做包装器(wrapper),因为他们是在用一个新的接口包装另一个对象。借助适配器可以处理一些类与API不匹配、不能一同使用的情况。注意适配器和门面虽然比较类似,但是门面模式只是为了简化一个接口,它并不是提供额外的选择,适配器则要把一个接口转换为另一个接口,它并不会滤除某些能力,也不会简化接口。第六讲6.11装饰者模式装饰者:(decorator)是一种为对象添加新特性的技术,它并不适用创建新子类的这种手段。装饰者模式可以用来透明的把原始对象包装在具有同样接口的另一个对象之中。这样我们就可以为对象添加一个方法或者一些行为,然后将方法调用传递给原始对象。第六讲6.12享元模式享元模式是一种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新疆维吾尔自治区哈密市医疗系统事业编人员招聘笔试参考题库及答案详解
- 2026年镇江市润州区政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年宁波市鄞州区工会人员招聘考试模拟试题及答案详解
- 2026年上海市南汇区工会人员招聘考试模拟试题及答案详解
- 2026年广东省工会人员招聘笔试模拟试题及答案详解
- 2026年昆明市五华区政务服务中心(窗口人员)招聘考试参考试题及答案详解
- 2026年岳阳市云溪区医疗系统事业编人员招聘笔试参考题库及答案详解
- 2026年景德镇市珠山区医疗系统事业编人员招聘笔试备考题库及答案详解
- 2026年河北省衡水市工会人员招聘考试参考试题及答案详解
- 2026年陕西省咸阳市政务服务中心(窗口人员)招聘笔试备考试题及答案详解
- 《陆上风电场工程概算定额》NBT 31010-2019
- 五金材料采购投标方案(技术方案)
- HYT 082-2005 珊瑚礁生态监测技术规程
- DB11T 489-2024 建筑基坑支护技术规程
- 一页纸山洪灾害预案
- 中医护理技术的质量与安全管理
- 凤凰山矿选煤厂煤泥水处理系统控制方法研究与实现开题报告
- 生产效率统计表
- 三菱重工sc sl3n be软件设置说明书
- GB/T 8813-2020硬质泡沫塑料压缩性能的测定
- GB/T 14522-2008机械工业产品用塑料、涂料、橡胶材料人工气候老化试验方法荧光紫外灯
评论
0/150
提交评论