//当异步代码执行成功时,我们才会调用resolve(...), 当异步代码失败时就会调用reject(...)
//在本例中,我们使用setTimeout(...)来模拟异步代码,
let myFirstPromise = new Promise(function (resolve, reject) {
setTimeout(function () {
Math.random() > 0.5 ? resolve("成功!") : reject("失败!");
}, 500);
});
//success的值是上面调用resolve(...)方法传入的值.
myFirstPromise.then(function (success) {
console.log("success! " + success);
}, function (error) {
console.log("error! " + error);
});
Promise简单用法
移动开发问题总结
1.情景:两个滚动层叠在一起,底层随着顶层滚动(滚动穿透)
方案:在底层可以滚动的层上加fixed
$("body").css({"position": "fixed",width:'100%'});
2.情景:fixed层input光标定位不准 或 input没有在可视区域。
方案:禁止底层的滚动,遮罩层禁止
$('.bg-opacity').on('touchmove',function(e){
e.stopPropagation();
e.preventDefault();
});
// 苹果uc浏览器 position: fixed;处理
var ua = navigator.userAgent.toLowerCase();
if (/iphone|ipad|ipod/.test(ua)) {
$('#login-box input').bind('focus', function () {
var h = $(window).height()-100;
$("底部滚动层").css({"overflow": "hidden", "height": h + "px"});
});
$('#login-box input').bind('blur', function () {
$("底部滚动层").css({"overflow": "auto", "height": "auto"});
});
}
3.情景:fiexd里含有input,当输入法弹起,head定位不准,往下偏移。(UC浏览器下导航栏收起)
方案:修改浮动层,body层定位为absolute,键盘收起后还原
$('#login-box input').bind('focus', function () {
$('header,#login-box').css({
'position': 'absolute'
});
$('#section-footer').css({
'position': 'absolute'
});
$('html').css({
'position': 'relative'
});
});
$('#login-box input').bind('blur', function () {
$('header,#login-box').css({
'position': 'fixed'
});
$('#section-footer').css({//由于有些设备直接fixed定位会从键盘的位置掉到底部的动作,所以先隐藏再显示;
'position': 'fixed',
'bottom':'0',
'display':'none'
});
setTimeout(function(){
$('#section-footer').fadeIn();
},500);
$('html').css({
'position': 'static'
});
});
phpstrom 10 永久激活
1.将JetbrainsCrack.jar放到phpstorm安装目录下的lib文件夹
2.找到phpstorm 的安装路径, 在bin目录下有两个文件 PhpStorm.exe.vmoptions ,PhpStorm64.exe.vmoptions 打开文件
3.最后面加入 一行
-javaagent:C:Program Files (x86)JetBrainsPhpStorm 2016.3.2libJetbrainsCrack.jar
后面的路径,根据自己放的位置修改
保存文件
关闭并重新打开phpstorm
4.打开http://idea.lanyus.com/getkey?userName=Allen
userName可以改
生成一个激活码
菜单 help >>>>Register
选择Activation Code
将验证码粘贴进去
激活...
转至:https://blog.csdn.net/alen_xiaoxin/article/details/54906510
文件下载:https://pan.baidu.com/s/1_U-cfVfKr5dfyHFR1oP3zA 提取码: q4re
Python学习笔记 #2 变量类型
1.数字(不可变数据)
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
a=100
del a #删除变量
运算方式跟PHP差不多,除了下面几个
2 / 4 # 除法,得到一个浮点数
2 // 4 # 除法,得到一个整数
2 ** 5 # 乘方
2.字符串(不可变数据)
A B C D E F
0 1 2 3 4 5
-6-5-4-3-2-1
可以用 [头下标:尾下标] 截取字符串
str = 'Runoob'
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # *输出字符串两次*
print (str + "TEST") # *连接字符串*
3.元组(不可变数据)
元组写在小括号 () 里,元素之间用逗号隔开
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (tinytuple * 2) # 输出两次元组
print (tuple + tinytuple) # 连接元组
4.列表(可变)
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
变量[头下标:尾下标]
加号 + 是列表连接运算符,星号 * 是重复操作
5.集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:parame = {value01,value02,...} 或者 set(value)
a = set('abcdefg')
b = set('abcde')
print(a) # {'b', 'd', 'c', 'a', 'g', 'e', 'f'}
print(a - b) # a 和 b 的差集 {'g', 'f'}
print(a | b) # a 和 b 的并集 {'c', 'b', 'e', 'g', 'a', 'd', 'f'}
print(a & b) # a 和 b 的交集 {'c', 'b', 'e', 'a', 'd'}
print(a ^ b) # a 和 b 中不同时存在的元 {'g', 'f'}
6.字典 (类似js对象,也有keys(),values()方法)
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(dict['one']) # 输出键为 'one' 的值
print(dict[2]) # 输出键为 2 的值
print(tinydict) # 输出完整的字典
print(tinydict.keys()) # 输出所有键 dict_keys(['name', 'code', 'site'])
print(tinydict.values()) # 输出所有值 dict_values(['runoob', 1, 'www.runoob.com'])
构造函数 dict() 可以直接从键值对序列中构建字典如下:
dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) # {'Taobao': 3, 'Runoob': 1, 'Google': 2}
{x: x ** 2 for x in (2, 4, 6)} # {2: 4, 4: 16, 6: 36}
dict(Runoob=1, Google=2, Taobao=3) # {'Runoob': 1, 'Google': 2, 'Taobao': 3}
6.判断变量类型 isinstance 和type
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
7.类型转换
int(x [,base])
将x转换为一个整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
Python学习笔记 #1 基础语法
前言:
本片学习笔记来自https://www.runoob.com。只会记录一些与php不一样的编程方式,建议去看原文或w3cschool
1.注释:可以用多个 # 号,还有 ''' 和 ""
2.缩进:用缩进代替{},注意if后面的 :。Python可以在同一行中使用多条语句,语句之间使用分号(;)分割
# 缩进不一致,会导致运行错误
a = 1;b = 2
if a < b:
print("Answer")
else:
print("Answer")
3.字符串的表示
变量[头下标:尾下标:步长]
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始的后的所有字符
print(str * 2) # 输出字符串两次
4.模块导入用 import 与 from...import
import sys #sys 是系统模块
from sys import argv,path # 导入特定的成员
DB.py
DB_HOST='127.0.0.1'
DB_PWD='123456'
main.py
from DB import DB_HOST
print(DB_HOST)
- print('dd',end='') # end='' 不换行