Javascript中的基本包装类型
当读取一个基本类型(Boolean、String、Number)的值时,后台对创建一个对应的基本包装类型,从而让我们可以调用一些方法来操作这些数据。 基本包装类型与引用类型的区别:
生存期。自动创建的包装类型只存在于一行代码存在的瞬间。不能在运行时为基本类型添加属性和方法。
Number类型常用的方法
toString()
toFixed(2) //小数点后两位
toExponential()
toPrecision(3)
String类型常用的属性和方法
length: 返回字符串的长度
charAt(2) charCodeAt(2): 返回字符串中第三个字符/编码
concat(“xxx”) 或者 + “xxx”: 字符串拼接
slice(start, end) subString(start, end) subStr(start, number): 字符串切片 当start为负值时,slice和subStr会把它与字符串长度相加得到新的start;而subString则会将其转化为0 当end/number为负值时,slice会把它与字符 ...
Javascript中的函数
函数的定义
var foo = fucntion(a, b) {}; //函数表达式
function foo(a, b) {}; //函数声明
var foo = new Function(“a”, “b”, “return false”); //不推荐
对于函数声明,可以在声明之前调用该函数;而对于函数表达式,不可以在表达式之前调用该函数。
函数的属性
this: 引用的是函数执行的环境对象,全局作用域中的this引用的是window对象
arguments: 保存函数参数的数组
arguments.callee: 指向该函数的指针
caller: 函数的调用者
length: 函数希望接收到的命名参数的个数
函数的方法
call(obj, arg1, arg2…) //设置函数的运行环境(改变this的值)
apply(obj, [arg1, arg2]) //设置函数的运行环境(改变this的值)
bind(obj) //绑定函数的运行环境
Javascript中的正则表达式
RegExp类型的创建 var expression = /pattern/flags; 或者 var expression = new RegExp(“pattern”, “flags”);
g :全局匹配
i :忽略大小写
m :多行模式
RegExp实例的属性
global: true or false, 表示标志位’g’是否被设置
ignoreCase: true or false
multiline: true or false
lastIndex: 下一次搜索开始的字符位置
source: pattern的字符串表示
RegExp实例的方法
exec(“target_string”)
ret.index: 匹配到的字符串的起始位置
ret.input: “target_string”
ret[0]: 匹配到的字符串
ret[1 - n]: 匹配组1-n匹配到的字符串
test(“target_string”)
true: 匹配到字符串
false: 没有匹配到字符串
exec和tes ...
Javascript中的Date
Date类型的创建
var date = new Date() //获取当前时间
var date = new Date(ms) //根据Unix时间戳来创建Date对象
var date = new Date(Date.parse(“string”)) //string为日期时间组成的字符串,符合要求的字符串格式包括:
“m/d/y”
“January 12, 2004”
“Tue May 25 2004 00:00:00 GMT-0700”
YYYY-MM-DDTHH:mm:ss.sssZ”
var date = new Date(Date.UTC()) // Date.UTC的参数为年、月、日、小时、分钟、秒、毫秒
Date类型的操作 var date = new Date();
Date.now() 或者+new Date()获取当前的时间戳, “+”操作符可获取Date对象的时间戳
date.toDateString(); // “Thu May 17 2018”
date.toTimeString(); // “14 ...
[转]A Complete Guide to Flexbox
BackgroundThe Flexbox Layout (Flexible Box) module (currently a W3C Last Call Working Draft) aims at providing a more efficient way to lay out, align and distribute space among items in a container, even when their size is unknown and/or dynamic (thus the word “flex”). The main idea behind the flex layout is to give the container the ability to alter its items’ width/height (and order) to best fill the available space (mostly to accommodate to all kind of display devices and screen sizes). A fle ...
操作系统级虚拟化概述
操作系统级虚拟化KVM、XEN等虚拟化技术允许各个虚拟机拥有自己独立的操作系统。与KVM、XEN等虚拟化技术不同,所谓操作系统级虚拟化,也被称作容器化,是操作系统自身的一个特性,它允许多个相互隔离的用户空间实例的存在。这些用户空间实例也被称作为容器。普通的进程可以看到计算机的所有资源而容器中的进程只能看到分配给该容器的资源。通俗来讲,操作系统级虚拟化将操作系统所管理的计算机资源,包括进程、文件、设备、网络等分组,然后交给不同的容器使用。容器中运行的进程只能看到分配给该容器的资源。从而达到隔离与虚拟化的目的。 实现操作系统虚拟化需要用到Namespace及cgroups技术。
命名空间(Namespace)在编程语言中,引入命名空间的概念是为了重用变量名或者服务例程名。在不同的命名空间中使用同一个变量名而不会产生冲突。Linux系统引入命名空间也有类似的作用。例如,在没有操作系统级虚拟化的Linux系统中,用户态进程从1开始编号(PID)。引入操作系统虚拟化之后,不同容器有着不同的PID命名空间,每个容器中的进程都可以从1开始编号而不产生冲突。 目前,Linux中的命名空间有6种类型,分 ...
Javascript中的数组
数组的定义:
var colors = new Array(20);
var colors = new Array(‘red’); // [‘red’]
var colors = [‘red’, ‘green’];
判断变量是不是数组:
colors instanceof Array; //true
Array.isArray(colors); //true
将数组转化为字符串:
colors.toString(); // ‘red,green’
colors.join(‘ ‘); //‘red green’
colors = [ “red”, undefined, “green”, null, “yellow” ];colors.toString(); //“red,,green,,yellow”colors.join(‘ ‘); //“red green yellow”colors.join(‘;’); //“red;;green;;yellow”
栈方法
colors.push(‘yellow’); //[‘red’, ‘gr ...
Javascript中的基本数据类型
Undefined
在var或者let中声明了变量但没有赋值时,这个变量的值就是undefined.
使用typeof关键字检测未声明变量的类型为undefined.
Null
null表示一个空对象指针,所以用typeof检测null时,会返回object
undefine派生自null, null == undefined 为true, null === undefined为false
Boolean
true false 区分大小写
空字符串、0和NaN、null、undefined转换为boolean的值为false
Number
Number表示整数和浮点数
八进制数以0开头,十六进制数以0x开头
Number.MIN_VALUE 表示Javascript支持的正的最小数值,Number.MAX_VALUE表示Javascript支持的最大数值
超出最大数值就会被转化为Infinity,如果为负值则会被转化为-Infinity
isFinite()函数可以判断一个数值是否在支持的范围之内
NaN表示本来该返回数值的操作数未 ...
React 概要
React 简介React 是一个开源的javascript库,用来构建用户接口(UI)。下图是React的一些基本信息:
React 的特点
单向数据流
数据自上而下
Props 不可变
States可变
任何数据、函数都可以作为属性(props)传 递给子组件(Props, States, Handlers, Styles)
事件冒泡
子组件触发的事件会传递到父组件
虚拟DOM
Javascript内存中的DOM数据缓存
组件发生变化时渲染虚拟DOM
React将虚拟DOM与DOM的差异转化为一系列的DOM操作
将这些操作同步应用到真实的DOM中
JSX
可以使用HTML语法创建Javascript 对象
代码更少
会被转化为Javascript执行
Offline - react-tools
In-Browser - JSXTransformer
不改变Javascript语义
其他特点
元素嵌套: 每个组件只允许有一个顶层元素(div, table …)
自定义属性: 除了HTML标签自带 ...
[转]Linux Mint启用VNC
This tutorial was adapted from here.
1. Remove the default Vino server:
sudo apt-get -y remove vino
2. Install x11vnc:
sudo apt-get -y install x11vnc
3. Create the directory for the password file:
sudo mkdir /etc/x11vnc
4. Create the encrypted password file:
sudo x11vnc –storepasswd /etc/x11vnc/vncpwd
You will be asked to enter and verify the password. Then press Y to save the password file.
5. Create the systemd service file for the x11vnc service:
sudo xed /lib/systemd/system/x11vnc.service
C ...