函数声明

前端基础精简总结

梦想的初衷 提交于 2019-11-29 17:42:29
更好阅读 移步这里 1. JavaScript 1.1. 基础语法 包括:变量声明、数据类型、函数、控制语句、内置对象等 1.1.1. 变量声明 ES5: var //普通变量 function //函数 ES6新增: let //普通变量 const //常量 -- 声明的同时初始化,不可重新赋值,不能重复声明 import //模块 class //类 1.1.2. 数据类型 -- 类型介绍 ES5: String、Number、Boolean、Null、Undefined、Object ES6增: Symbol 其中,object为引用,其他为基本类型 基本类型 占据空间固定,是简单的数据段,将其存储在 栈 (stack)中(按值访问) 便于提升变量查询速度 为了便于操作这类数据,ECMAScript提供了 3 个 基本包装类型 :Boolean、Number 和 String 基本包装类型 一种特殊的引用类型,每当读取一个基本类型值的时候,JS内部就会创建一个对应的包装对象,从而可以调用一些方法来操作这些数据 引用类型 由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度 将其存储在 堆 (heap)中,存储在变量处的值是一个指针,指向存储对象的内存处(按址访问) 可以为其添加、改变和删除属性和方法;但基本类型不可以添加属性和方法 -- 类型判断 原始类型

函数

不羁的心 提交于 2019-11-29 17:40:28
总结 一、 函数的基本介绍 函数的三要素 :函数的功能,函数的参数,函数的返回值。 DYR原则:全称为Don’t repeat yourself 翻译不重复你自己。 二、 函数的声明方式 字面量声明函数 : 使用function来创建函数, Function 函数名(形式参数){ //函数体 } 函数名:就是我们调用函数时需要书写的标识符 形式参数:简称形参,是调用函数时需要接收的参数 实际参数:简称实参,是调用函数时实际传递过去的参数 示例: function test(name){ console.log("Hello,"+name); } test("xiejie");//Hello,xiejie 函数表达式声明函数 : 使用函数表达式来进行声明, Let 变量 = function( ){ //函数体 } 示例: let test = function(name){ console.log("Hello,"+name); } test("xiejie");//Hello,xiejie 注意:这里的变量并不是函数的名字,一般来讲,我们都是将一个匿 名函数赋值给一个变量,然后通过这个变量来对函数进行调用。 也可以将一个带有名字的函数赋值给一个变量,这样的声明方式被称之为命名式函数表达式; 示例: Let test = function saySth(name){ console

前端基础之JavaScript

走远了吗. 提交于 2019-11-29 16:50:30
JavaScript概述   JavaScript(JS) 前端编程语言  JS跟Java没有半毛钱关系,纯粹是为了蹭当时红极一时java的热度 ECMAScript和JavaScript的关系   1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史(版本的更新) 注:ES6就是指ECMAScript 6。 一个完整的JavaScrip实现是由一下3个不容的部分组成的: 核心(ECMAScript) 文档对象模型(DOM) Document object model (整合js,css,html) 浏览器对象模型(BOM)

Javascript基础三(函数)

风流意气都作罢 提交于 2019-11-29 16:16:22
函数第一节: 1.函数的概念及作用   函数是由事件驱动的或者当他被调用时可执行的可重复使用的代码块。   具备一点功能的代码段,代码段来实现具体的功能。要想实现一个函数的功能需要对函数进行调用。每写完一个函数就需要在使用时进行调用 2.函数的好处 重复使用 忽略细节 选择执行 3.函数的定义 通过关键字function声明, function fn(){} 其中: function---为声明函数的关键字,指出这是一个函数 fn ------是函数的名称,类似于永来存储函数的变量 () ------为函数的参数,多个参数用 , 隔开 {} ------放置函数体,用于执行时,所要编译的代码段 4.函数的调用 fn(); ----函数名+() 注意: 千万不能丢掉括号;可先尝试理解fn()()()() 5.事件的概念种类和作用 是一种可以被js侦测到的行为 在JS中常见的事件有: 鼠标点击--------onclick 鼠标双击--------ondblclick 页面或图片加载-----onload 鼠标移入--------onmouseover 鼠标离开--------onmouseout 元素获得焦点------onfocus 元素失去焦点------onblur 键盘事件 …… 主要用于和用户产生一定的交互,提高页面或程序的交互性。 事件和函数之间的关系 当触发事件的时候

[js]函数声明与调用

跟風遠走 提交于 2019-11-29 16:12:22
函数普通声明与调用 function a(){   alert('IIFE'); } //下面是一个函数调用 a(); 理解一下就是在一个声明了的函数后面加上一个()就可以调用函数了 所以下面这样写同理(有一点小错误,会报错) function a(){ alert('IIFE'); }() 但是我们按上面在console中执行发现出错了 因为这样的代码混淆了函数声明和函数调用,以这种方式声明的函数 a ,就应该以 a(); 的方式调用。 但是括号则不同,它将一个函数声明转化成了一个表达式,解析器不再以函数声明的方式处理函数a,而是作为一个函数表达式处理,也因此只有在程序执行到函数a时它才能被访问。所以, 任何消除函数声明和函数表达式间歧义的方法,都可以被解析器正确识别 。所以,赋值,逻辑,甚至是逗号,各种操作符都可以告诉解析器,这个不是函数声明,它是个函数表达式。并且,对函数一元运算可以算的上是消除歧义最快的方式,感叹号只是其中之一,如果不在乎返回值,这些 一元运算都是有效的 !function(){alert('iifksp')}() // true +function(){alert('iifksp')}() // NaN -function(){alert('iifksp')}() // NaN ~function(){alert('iifksp')}() // -1/

基本概念

与世无争的帅哥 提交于 2019-11-29 15:50:52
环境 ANSI C 的任何一个实现,都存在两种环境: 编译环境,源代码被转换为可执行的机器指令。 执行环境,实际代码执行的环境。 这两种环境不必位于同一台机器上。 编译 编译将组成一个程序的每个源文件转换成目标代码,然后各个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序。 编译分为几个阶段: 预处理阶段,执行宏展开,头文件包含等操作。 词法解析。 词法规则 转义序列 转义序列 表示 \a 提醒/(警报) \b Backspace \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \' 单引号 \" 双引号 \\ 反斜杠 \? 文本问号 \ooo 八进制表示法的 ASCII 字符 \xhh 十六进制表示法的 ASCII 字符 \xhhhh 以十六进制表示法,则此转义序列用于常量宽字符或 Unicode 字符串的 Unicode 字符。例如,WCHAR f = L'\x4e00' 或 WCHAR b[] = L"The Chinese character for one is \x4e00"。 自有形式的源代码 词法中不规定什么地方可以书写语句。 词法中不规定一行写多少条语句。 词法中不规定什么地方可以出现空格。 标识符 标识符由字母、数字、下划线组成,不能用数字开头。 C语言虽然不限制标识符的长度,但是它受到不同编译器的限制,同时也受到操作系统的限制

Java基础知识笔记-8-接口,lambda表达式与内部类

落花浮王杯 提交于 2019-11-29 15:12:17
Java基础知识笔记-8-接口,lambda表达式与内部类 首先,介绍一下接口(interface)技术,这种技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现(implement)一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。了解接口以后,再继续介绍而表达式,这是一种表示可以在将来某个时间点执行的代码块的简洁方法。使用lambda表达式,可以用一种精巧而简洁的方式表示使用回调或变量行为的代码。 接下来,讨论内部类(inner class)机制。理论上讲,内部类有些复杂,内部类定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域。内部类技术主要用于设计具有相互协作关系的类集合。 10.1 接口 在Java程序设计语言中, 接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。 在Java语言中,接口有两种意思 一是指概念性的接口,即指系统对外提供的所有服务,类的所有能被外部使用者访问的方法构成了类的接口 二是指interface关键字定义的实实在在的接口,也称为接口类型。 在面相对象程序设计中,定义一个类必须做什么而不是怎么做有时是很有益的。前面有一个这样的例子:抽象方法为方法定义了签名,但不提供实现方式。子类必须自己实现由其父类定义的抽象方法。这样,抽象方法就指定了方法的接口而不是实现

前端之JavaScript

守給你的承諾、 提交于 2019-11-29 13:30:48
1 | 0 JavaScript概述 1 | 1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 1 | 2 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更

C++项目中的extern "C" {}

百般思念 提交于 2019-11-29 13:26:32
引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus } #endif 它到底有什么用呢,你知道吗?而且这样的问题经常会出现在面试or笔试中。下面我就从以下几个方面来介绍它: 1、#ifdef _cplusplus/#endif _cplusplus及发散 2、extern "C" 2.1、extern关键字 2.2、"C" 2.3、小结extern "C" 3、C和C++互相调用 3.1、C++的编译和连接 3.2、C的编译和连接 3.3、C++中调用C的代码 3.4、C中调用C++的代码 4、C和C++混合调用特别之处函数指针 1、#ifdef _cplusplus/#endif _cplusplus及发散 在介绍extern "C"之前,我们来看下#ifdef _cplusplus/#endif _cplusplus的作用。很明显#ifdef/#endif、#ifndef/#endif用于条件编译,#ifdef _cplusplus/#endif _cplusplus——表示如果定义了宏_cplusplus,就执行#ifdef/#endif之间的语句,否则就不执行。 在这里为什么需要#ifdef

C++模板、类模板、函数模板详解都在这里了

北战南征 提交于 2019-11-29 09:28:26
一、引言 在写排序算法时,如果要写一个交换两个数据的函数,由于基本数据类型有int、float、double等等类型,所以针对每种数据类型可能我们要写很多swap函数,这些函数除了传入的数据类型不同,函数体结构大致相同。所以C++为了避免让程序员写很多大量重复代码,设计了一种叫做“模板”的东西。我们写程序时,先不指定什么类型,在调用时我们再说明一下是什么类型,具体怎么实现接着往下看。 二、函数模板 1、定义 像开头所说,如果要对int、double类型的两个数进行交换我们要写两个函数,但用函数模板时只需要写一个函数即可。模板定义如下: template <typename T> 或者 template <class T> 其中,template是声明一个模板,typename是声明一个虚类型T,这个T可以代替int、double等基本数据类型,那为什么还有class?因为最初是用class声明一个T来表示通用数据类型,但考虑到class会和“类”混淆,就改用typename进行定义,同时保留了class,这两者效果相同,但我个人比较习惯用class。 在进行声明模板之后下面就开始写模板的函数体了,例如交换函数,合起来就是: template <class T> void swap(T *p1,T *p2){ T temp=*p1; *p1=*p2; *p2=temp; }