知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体(struct)指的是一种数据结构 结构体是值类型,在方法中传递时是值传递 Swift中的结构体是一类类型, 可以定义属性和函数(甚至构造函数和析构函数等) 结构体的格式 struct 结构体名称 { 结构体属性和函数 } 2. 结构体的基本使用 2.1…
一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 "hello" 被称为字面量形式,在JDK1.7之后存放在位于堆内存的独立的常量池中: ```java // 比如说: String s1="hello"; Scanner input = new Scanner(); // 上面的语句中变量名 s1.input 存放…
一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 "hello" 被称为字面量形式,在JDK1.7之后存放在位于堆内存的独立的常量池中: ```java // 比如说: String s1="hello"; Scanner input = new Scanner(); // 上面的语句中变量名 s1.input 存放…
前面的话 javascript中的函数大多数情况下都是由用户主动调用触发的,除非是函数本身的实现不合理,否则一般不会遇到跟性能相关的问题.但在一些少数情况下,函数的触发不是由用户直接控制的.在这些场景下,函数有可能被非常频繁地调用,而造成大的性能问题.解决性能问题的处理办法就是函数节流和函数防抖.本文将详细介绍函数节流和函数防抖 常见场景 下面是函数被频繁调用的常见的几个场景 1.mousemove事件.如果要实现一个拖拽功能,需要一路监听 mousemove 事件,在回调中获取元素当前位置,然…
一.javascript 中有几种类型的值 1.基本数据类型 : 包括 Undefined.Null.Boolean.Number.String.Symbol (ES6 新增,表示独一无二的值) 特点: a. 值不可变 b. 存放在栈中 c.双等和全等的区分 2.引用数据类型: 包括 Object.Array.Function 特点: a.值可变 b.同时保存再栈内存和堆内存 c.比较是引用的比较 二.javascript 数据类型的检测 1.typeof : 返回一个表示数据类型的字符串(nu…
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 无序,不重复 交集.并集.差集.各种集 4.函数 1.def 2.函数名,参数 3.功能 4.返回值   参数 普通参数 指定参数 默认参数,默认参数只能放到最后面 动态参数 *args>=元组 **kwargs>=列表 全局变量 global *************************…
为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针. 也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) #include<iostream> using namespace std; class base{ public: /*virtual*/ void who(){ //define this function to virtual will be normal cout << "this is the class of bas…
回调函数 既然函数与任何被赋值给变量的数据是相同的,那么她当然可以像其他数据那样被定义.删除.拷贝,以及当成参数传递给其它函数. 我们定义一个函数,这个函数有两个函数类型的参数,然后他会分别执行这两个参数所执行的函数. function her(){ return a() + b(); } function one(){ ; } fucntion two(){ ; } her(one, two) 实际上,我们也可以直接用匿名函数(即函数表达式)来替代one(),two(),以作为目标函数的参数:…
函数声明 关于函数声明的方式,它的一个重要的特性就是函数声明提升(function declaration hoisting),意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它的语句后面,如下所示: 1 sayHi(); //在调用语句的后面声明函数(function declaration hoisting) 2 function sayHi () { 3 console.log("Hello World"); 4 } 函数表达式 有多种表达方式,下面是最常见…
一.前言 以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃. 1. window对象的resize.scroll事件 2. 拖拽时的mousemove事件 3. 射击游戏中的mousedown.keydown事件 4. 文字输入.自动完成的keyup事件 实际上对于window的resize事件,实际需求大多为停止改变大小n毫秒后执行后续处理:而其他事件大多的需求是以一定的频率执行后续处理.针对这两种需求就出现了debounce和throttl…