函数声明

javascript(4)

狂风中的少年 提交于 2019-12-04 12:11:44
函数 为什么要有函数? 在写代码的时候,有一些常用的代码需要书写多次,如果直接复制粘贴的话,会造成大量的冗余代码。 如果修改呢?? 多个页面呢?? 函数可以封装一段重复的JavaScript代码,它只需要声明一次,就可以被多次调用。 重复代码、冗余代码的缺点: 代码重复,可阅读性差 不易维护,如果代码逻辑改变了,所有地方的代码都要跟着改变,效率太低。 使用场景 : 只要js出现的地方都有函数 ​ 函数的声明与调用 就相当于之前数组的创建和使用 声明函数的语法 : function 函数名() { // 函数体 } 调用函数的语法 : 函数名 函数名() 特点: 1. 函数声明的时候,函数体并不会执行,函数体只有在调用的时候,才会执行; 2. 可以调用多次; 代码示例 : // 声明函数 function sayHi() { console.log('萨瓦迪卡'); } // 调用函数 sayHi(); 练习 : //1. 封装一个打招呼的函数 //2. 封装一个函数,计算两个数的和 //3. 封装一个函数,计算1-100之间所有数的和 函数的参数 ​ function getSum() { ​ var a = 10; ​ var b = 20; ​ console.log(a+b); } ​ // 打印的是 10+20 ​ getSum(); ​ // 想打印 20+30? 怎么办

es6入门

一世执手 提交于 2019-12-04 09:41:11
1.什么是es6 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 es6入门文档: http://caibaojian.com/es6/ 2.node中使用es6 Babel 是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。 2.1配置文件 .babelrc Babel的配置文件是 .babelrc ,存放在项目的根目录下。使用Babel的第一步,就是配置这个文件。该文件用来设置转码规则和插件,基本格式如下: { "presets": [], "plugins": [] } 2.2安装es6转换模块 presets 字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。 // ES2015转码规则 $ npm install --save-dev babel-preset-es2015 // react转码规则 $ npm install --save-dev babel-preset-react // ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个 $ npm install

javaScript基础知识总汇

独自空忆成欢 提交于 2019-12-04 09:34:32
javaScript是什么: 1、JavaScript 运行在客户端(浏览器)的编程语言 2、用来给HTML网页增加动态功能 3、用来给HTML网页增加动态功能。 4、Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。为什么开头叫java,因为当时java特别牛逼吗,所以可能为了营销吧。 应用场景: 网页特效 服务端开发(Node.js) 命令行工具(Node.js) 桌面程序 App 控制硬件-物联网 网页游戏开发 JavaScript和HTML、CSS的区别 HTML:提供网页的结构,提供网页中的内容 CSS: 用来美化网页 JavaScript: 可以用来控制网页内容,给网页增加动态的效果 javaScript的组成 1、ECMAScript - JavaScript的核心简称ES,ECMA 欧洲计算机制造联合会 网景公司出了一套标准javaScript,微软出了一套标准JScript。为了统一所以制定了一套标准ECMAScript,它描述了语言的基本语法和数据类型 2、DOM(Document Object Model):一套操作页面元素的API 3、BOM(Browser Object Model):一套操作浏览器功能的API javaScript的书写位置 1、写在行内: <input

ES6中的块级作用域与函数声明

。_饼干妹妹 提交于 2019-12-04 08:57:50
  块级作用域             定义: 是一个语句,将多个操作封装在一起,通常是放在一个大括号里,没有返回值。      为何需要块级作用域?         在ES6之前,函数只能在全局作用域和函数作用域中声明,不能在块级作用域中声明。没有块级作用域导致很多场景不合理:    function block(){ var a = 1; if(true){ var a = 2; } console.log(a) //2 } block() function block(){ let a = 1; if(true){ let a = 2; } console.log(a) //1 } block()     上面的函数有两个代码块,都声明了变量a,运行后输出 1。这表示外层代码块不受内层代码块的影响。如果两次都使用var定义变量a,最后输出的值才是 2         ES6中的块级作用域:    1、允许块级作用域任意嵌套,外层作用域无法读取内层作用域的变量 {{{{ {let i = 6;} console.log(i); // 报错 }}}}      上面代码使用了一个五层的块级作用域,每一层都是一个单独的作用域。第四层作用域无法读取第五层作用域的内部变量。    2、内层作用域可以定义外层作用域的同名变量 {{{{ let i = 5; {let i = 10;}

C++_学习笔记

旧时模样 提交于 2019-12-04 08:19:21
C++ 面向对象特征:封装——抽象——继承——多态 https://www.runoob.com/ <命名空间> —————————————————————————————————————————————————————————————————————————————————————————— #include <iostream> 1 using namespace std; 2 using std::变量; 3 std::变量; cout cin 定义: namespace spaceA{ int a = 10; namespace spaceB{ struct std{ int age ; } } } 使用: using namespace spaceA; using spaceA::a; spaceA::a; <bool增强> —————————————————————————————————————————————————————————————————————————————————————————— bool a = true ; 1 bool b = false; 0 sizeof(a) = 一个字节; <三目增强> ———————————————————————————————————————————————————————————————————————————

python函数声明和调用(18)

岁酱吖の 提交于 2019-12-04 07:18:40
函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数是python的内置函数,python底层封装后用于实现某些功能。 一.函数的定义 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回;如果没有return语句,默认返回None: def functionname( parameters ): "函数说明" function_suite return [expression] 例如:写一个函数输出’hello world’ def cusom_print(): print("hello world") 二.函数的调用 当在py文件中,代码一行一行执行,如果遇到函数的定义,编译器会自动跳过,执行函数之后的代码,如果想调用函数直接调用即可。 注意:函数在调用之前必须先声明。python中的内置函数如:print/type函数等等已经在python编译器内部声明并且定义好了,我们只管调用即可,不需要关心具体内部如何实现。示例代码如下: # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat

C/C++ 的编译和链接

流过昼夜 提交于 2019-12-04 06:34:30
C/C++文件 C/C++程序文件包括 .h .c .hpp .cpp,其中源文件(.c .cpp)是基本的编译单元,头文件(.h .hpp)不会被编译器编译。 C/C++项目构建(build)过程,分为以下几个步骤 预处理 → 编译 → 链接。 预编译 预编译的过程可以理解为编译器(实际上是预处理器,这里统称为编译器就可以了)在正式编译之前处理C/C++文件中的预处理命令,即#开头的代码。 常用的几个预处理命令如下: #include ...... #ifdef ...... #else......#endif #define ...... #pragma ...... 举个例子,下面是个很简单的类定义: MyClass.h #define DEFAULT_VALUE 0 class MyClass { public: void Fun(); public: int value = DEFAULT_VALUE; }; MyClass.cpp #include "MyClass.h" void MyClass::Fun() { // Do someting return; } 预编译完成后的样子: class MyClass { public: void Fun(); public: int value = 0; }; void MyClass::Fun() { // Do

C语言存储类别和链接

拈花ヽ惹草 提交于 2019-12-04 05:30:40
目录 C语言存储类别和链接 存储类别 存储期 五种存储类别 存储类别和函数 分配内存malloc()和free() C语言存储类别和链接 ​ 最近详细的复习C语言,看到存储类别的时候总感觉一些概念模糊不清,现在认真的梳理一下。C语言的优势之一能够让程序员恰到好处的控制程序,可以通过C语言的内存管理系统指定变量的作用域和生存周期,实现对程序的控制。 存储类别 基本概念 对象 :在C语言中所有的数据都会被存储到内存中,被存储的值会占用一定的物理内存,这样的一块内存被称为 对象 ,它可以储存一个或者多个值,在储存适当的值时一定具有相应的大小。(C语言对象不同于面向对象语言的对象) 标识符 :程序需要一种方法来访问对象,这就需要声明变量来实现,例如: int identifier = 1 ,在这里 identifier 就是一个标识符,标识符是一个名称并遵循变量的命名规则。所以在本例中 identifier 即是C程序指定硬件内存中的对象的方式并提供了存储的值的大小“1”。在其它的情况中 int * pt 、 int arr[10] ,pt就是一个标志符,它指定了储存地址的变量,但是表达式*p不是一个标志符,因为它不是一个名称。 arr 的声明创建了一个可容纳10个 int 类型元素的对象,该数组的每一个元素也是一个对象。 作用域 :描述程序中可访问标识符的区域

C/C++指针,预处理

和自甴很熟 提交于 2019-12-04 05:30:32
C/C++指针 int a; int* p = &a; // 指向a地址的指针*p 1、与const一起的时候   char * const p; // 指针不可变,也就是指针只能指向一个地址char* p的指针;   char const * p; // 所指内容不可改,也就是 p是常量字符串   char const * const p; // 内容和指针都不能改   const char * const p; // 同上...内容和指针不能改    2、str[]和 str的区别 #include <iostream> using namespace std; int main() { char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout << ( str1 == str2 ) << endl; cout << ( str3 == str4 ) << endl; cout << ( str5 == str6 ) << endl; cout << (

lambda表达式(一)---基础知识

妖精的绣舞 提交于 2019-12-03 21:19:43
1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -> x + y; 参数类型也可以省略,Java编译器会根据上下文推断出来: (x, y) -> x + y; //返回两数之和 或者 (x, y) -> { return x + y; } //显式指明返回值 可见λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。 下面这个例子里的λ表达式没有参数,也没有返回值(相当于一个方法接受0个参数,返回void,其实就是Runnable里run方法的一个实现): () -> { System.out.println("Hello Lambda!"); } 如果只有一个参数且可以被Java推断出类型,那么参数列表的括号也可以省略: c -> { return c.size(); } 2. λ表达式的类型(它是Object吗?) λ表达式可以被当做是一个Object(注意措辞)。λ表达式的类型,叫做“目标类型(target type)”。λ表达式的目标类型是“函数接口(functional interface)”,这是Java8新引入的概念。它的定义是:一个接口,如果只有一个显式声明的抽象方法