Java的八种基本数据类型
数据类型#
在Java中一共有八种基本数据类型,分别是
byte
short
int
long
float
double
boolean
char
其中有4种整形(byte、short、int、long),两种浮点型(float,double),一种布尔类型(boolean)和一种字符类型(char)。
string不属于基本类型!!!
整形#
byte占用一字节(1Byte),等于8位(8bit),能表示的范围在-2^7~2^7-1(-128~127)之间。
常用于大型数组中以节省内存。
默认值为0。
short占用两个字节(2 Byte),等于16位(16 bit),能表示的范围在-2^15~2^15-1 (-32768~32767)之间。
默认值为0。
int占用四个字节(4 Byte),等于32位(32bit),能表示的范围在-2^31~2^31-1 (-2,147,483,648~2,147,483,647)之间。
是整形中最常用的类型,一般整形默认为int类型。
默认值为0。
long占用八个字节(8 Byte),等于64位(6 ...
如何在浏览器环境下使用npm下载的第三方库
问题引入#
直接在浏览器环境下使用require导入包, 会报错require is not defined
使用import导包也会报错, Cannot use import statement outside a module
必须在脚手架环境下经过编译才行吗? No, 这时候browserify就派上用场了.
使用#
全局安装
1npm i browserify -g
将js文件编译为可直接在浏览器下使用的js,就是会把require中的包编译进来,就可以直接引入使用了
12# 将当前目录下的other.js 编译为 index.jsbrowserify .\other.js -o .\index.js
在html中导入使用
1<script src=".\index.js"></script>
或者直接使用npx, 则无需全局安装
1npx browserify .\other.js -o .\index.js
CDN#
通常在npm下载的包,也可以使用cdn方式引入,比使用browserify更方便。
比如:
123 ...
js操作cookie
cookie介绍(转自wiki)#
HTTP cookie,简称cookie,是用户浏览网站时由网络服务器创建并由用户的网页浏览器存放在用户电脑或其他设备上的小文本文件。
Cookie使Web服务器能够在用户的设备上存储状态信息(如添加到在线商店购物车中的商品)或跟踪用户的浏览活动(如点击特定按钮、登录或记录历史)
属性#
一个cookie可能有多个属性,如Domain、Path、Expires、Max-Age、Secure、HttpOnly,例如:
12345HTTP/1.0 200 OKSet-Cookie: LSID=DQAAAK…Eaem_vYg; Path=/accounts; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnlySet-Cookie: HSID=AYQEVn…DKrdst; Domain=.foo.com; Path=/; Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnlySet-Cookie: SSID=Ap4P…GTEq; Domain=foo.com; ...
跨域问题
什么是跨域?#
MDN
跨域是指在Web开发中,浏览器的同源策略(Same-Origin Policy)限制下,从一个源(协议 + 域名 + 端口)访问另一个源的资源。同源策略是Web浏览器的一个安全机制,它通过限制脚本从一个域访问另一个域的文档或向另一个域发送请求来保护用户的信息安全。如果从一个域请求另一个域的资源,浏览器会阻止请求,并抛出跨域错误。
例如,如果你的网站在https://A.com上,你不能直接访问https://B.com或https:A.com:8080或http://A.com的资源,这是因为两者不是同一个源 (域名,端口号(web默认端口80,可省),协议任何一个不一样都会导致跨域问题。)如果需要跨域访问B.com的资源,需要采取一些特定的技术手段,如跨域资源共享(CORS)、JSONP等。
怎么解决?#
花裤衩:https://panjiachen.github.io/vue-element-admin-site/zh/guide/advanced/cors.html
CORS:https://developer.mozilla.org/zh-C ...
JS 中的 apply 与 call
apply 与 call
共同点: 使用定值this调用函数
不同点: 参数的形式不同,apply是将多个参数组成一个数组,call是直接传入多个参数
apply
call
MDN:
备注: 该方法的语法和作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受的是一个参数列表,而 apply() 方法接受的是一个包含多个参数的数组。
123456789101112131415161718192021222324252627/** * * @param {number} begin * @param {number} end */function loop1(begin = 0, end) { console.log("loop1"); for (let i = begin; i < end; i++) { let k = i / 1000; // 执行一些操作 }}/** * 执行函数fun, 并返回其运行时间 * @p ...
防抖与节流
防抖与节流
防抖:当连续调用时间间隔小于delay时,只执行最后一次调用
节流:某段时间内多次调用,只生效第一次,(限制某段时间内的调用次数,次数为1且是第一次)
参考文章
目的: 优化一个被频繁调用/触发的函数/事件
防抖应用:比如当用户在快速输入时,不应每次输入都调用请求,而是当用户一定时间内未再输入,再调用请求
节流应用:比如限制用户的调用请求,避免用户快速点击请求的时候,频繁向后台发送请求,而是第一次调用后,再间隔一定时间后才能继续调用下一次。
在ts中可以使用装饰器Decorators修饰函数,使其成为防抖/节流函数
防抖#
Lodash防抖函数源码: https://github.com/lodash/lodash/blob/master/debounce.js
Vue自定义防抖ref#
12345678910111213141516171819202122232425262728293031323334<template> <h1>自定义防抖ref</h1> <input v-model="tex ...
var, let 与 const
暂时性死区#
如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
123456let a = 1;// 块级作用域{ a = 2; // Cannot access 'a' before initialization let a = 3;}
变量提升#
变量可以在var声明之前使用,值为undefined。
12console.log(a); // undefinedvar a = 1;
12console.log(a); // Cannot access 'a' before initializationlet a = 1;
重复声明#
var可重复声明
let不可重复声明
123var a = 1;var a = 2;console.log(a); // 2
12let a = 1;let a = 2; // Identifier 'a' has already been declared
...
23设计模式与6大原则
设计模式
https://www.w3cschool.cn/javadesignpattern/
六大原则#
1、开闭原则(对扩展开放,对修改关闭)
2、里氏代换原则(任何基类可以出现的地方,子类一定可以出现)
3、依赖倒转原则(真对接口编程,依赖于抽象而不依赖于具体。)
4、接口隔离原则(使用多个隔离的接口,比使用单个接口要好)
5、迪米特法则(一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立)
6、合成复用原则(原则是尽量使用合成/聚合的方式,而不是使用继承。)
设计模式#
创建型模式(共五种)#
工厂方法模式(一个工厂类ReturnNew子类)、
抽象工厂模式(一个厂一个子类)、
单例模式(恶汉,懒汉)、
建造者模式(组合)、
原型模式(Cloneable浅接口,Serializable深接口)。
结构型模式(共七种)#
适配器模式(新接口用老实现类)、
装饰器模式(同代理,增强)、
代理模式(方法前后)、
外观模式(计算机包括…)、
桥接模式(中间表)、
组合模式(树)、
享元模式(共享池)。
...
powershell命令 与 一些常用快捷键
快捷键
记录一些常用快捷键和cmd命令
pwoershell命令#
powershell就是cmd的增强版,命令几乎与shell中相同
推荐使用powershell,还兼容了cmd中的命令
官方手册: https://learn.microsoft.com/zh-cn/powershell
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_command_syntax?view=powershell-7.3#command-name
使用技巧: 对于需要经常使用的命令, 可以创建编辑后缀为.bat的文件,点击直接运行命令
或者使用后缀.ps1的powershell脚本文件
命令(不区分大小写)
作用
help
查看所有可用命令及其简要说明
help cd
查看cd命令的详细使用说明
powershell
cmd黑窗口进入powershell,路径前带PS,eg:PS D:\>
ping +域 ...
typescript
TypeScript
介绍#
官方介绍: TypeScript is JavaScript with syntax for types.
翻译过来就是: “TypeScrip是带有类型语法的JavaScript。”
历史#
2012年10月,微软发布了首个公开版本的TypeScript。2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。TypeScript的作者是安德斯·海尔斯伯格,C#的首席架构师。
安装#
1> npm install -g typescript
数据类型#
与js中数据类型一致,增加了枚举类型
number
string
boolean
undefined
BigInt
Symbol
Object
函数返回类型
void
never
1234let a: any; // any类型, 可以赋值任意类型的值let hello = 'hello'; // 隐式any类型, 赋值时推断出string类型let helloworld: string = ...














