西方国家把国家权力体系分为立法权、司法权和行政权,并分别由议会、法院和政府“独立”行使。行政是与立法和司法相互制约的一种权力体系。西方国家实行“三权分立”制,我国实行人民代表大会制,这都是依据各自国家的国情而采取的国家权力的组织形式。在承认国家权力统一性的前提下,立法、司法、行政是国家权力的三大系统。行政是有别于立法和司法的一种国家权力,行政活动也有别于立法活动和司法活动。
DevOps
西方国家把国家权力体系分为立法权、司法权和行政权,并分别由议会、法院和政府“独立”行使。行政是与立法和司法相互制约的一种权力体系。西方国家实行“三权分立”制,我国实行人民代表大会制,这都是依据各自国家的国情而采取的国家权力的组织形式。在承认国家权力统一性的前提下,立法、司法、行政是国家权力的三大系统。行政是有别于立法和司法的一种国家权力,行政活动也有别于立法活动和司法活动。
在10086.cn上充值100元话费,使用信用卡充值的,银行显示缴费成功,但是 10086.cn显示未支付,于是:
1. 电话咨询了 10086 ,因为10086确实显示未收到付款,未果
2. 电话咨询银行,银行显示支付成功,因为不是直接付款给10086,而是付款给‘联动优势”的,银行提供了“联动优势”的400电话和958xxxxxx的订单号
3. 拨打400电话,结果: 给10086充值失败所致,原因未知, 48小时内会尝试重新充值,如果尝试失败,会在4个工作日内退还支付款项
疑问: 为什么不是每个环节都完成后再显示支付成功呢?
这里是facebook的csp设置:
X-WebKit-CSP:default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl ‘unsafe-inline’ ‘unsafe-eval’ https://*.akamaihd.net http://*.akamaihd.net;style-src * ‘unsafe-inline’;connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net https://fb.scanandcleanlocal.com:*;
1. IE8下(可能还有别的浏览器)的数组对象不支持indexOf(..)方法
2. IE8下(可能还有别的浏览器)的字符串的substr(..)方法不支持从结尾计算,如: “abcd”.substr(-2) ; 在IE8下是 abcd, 在其它浏览器下为: cd
在给几个面试题:
1.
1 2 3 4 5 6 7 |
if (1) { function a() {} }else{ function b() {} } alert(a); alert(b); // 有些浏览器上能找见b,有些浏览器上找不见b |
或者
1 2 3 4 5 6 7 8 |
alert(a); // My God ,这也能找见 alert(b); if (1) { function a() {} }else{ function b() {} } |
2.
1 2 3 4 5 |
var i = 1; function func() { alert(i); // 这里的i到底是几? var i = 2; } |
结果: i没有被定义
梁栋说,http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf 里面有介绍
参考资料:
http://www.jb51.net/article/22880.htm
例如:
1 2 3 4 |
encodeURI("http://baidu.com/?a=b&c=d") // 输出: "http://baidu.com/?a=b&c=d" encodeURIComponent("http://baidu.com/?a=b&c=d") // 输出: "http%3A%2F%2Fbaidu.com%2F%3Fa%3Db%26c%3Dd" |
http://www.jb51.net/article/26369.htm
http://www.cnblogs.com/jikey/archive/2010/05/05/1728337.html
http://hi.baidu.com/shirdrn/item/4a785230105ef7f0e7bb7aa6
http://www.jb51.net/article/37051.htm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function Person() {} function Man() {} Man.prototype = new Person(); console.log(new Man() instanceof Man); // true console.log(new Man() instanceof Person); // true console.log(new Man() instanceof Object); // true m = new Man(); p = new Person(); Man.prototype.name = "phpor"; // 则: m.name == "phpor" 但是 p.name == undefined Person.prototype.age = 17; // 则: m.age == 17 并且 p.age == 17 // 所以说,prototype和“祖宗”的概念还不太一样,虽然Man也是Person,但是Man.prototype != Person.prototype ,即: Man.prototype == Person.prototype; // false |
对于utf-8的字符可以这么来测试:
encodeURIComponent(str).replace(/%./g, “”).length
因为多字节字符总会被处理成每个字节都编码的。 对于GBK的页面的GBK字符如何检查字节数呢?
JS如何按字节来读取二进制数据?比如: 对于二进制字符串str,如何逐个字节地转换成16进制标识的编码?
JS中常用的字符串函数:
String.fromCharCode(code, code,…)
String.prototype.charCodeAt(int)
String.prototype.charAt(int)
通过查阅ecma文档: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf 可知:
String.fromCharCode(0x61) 得到的是一个ascii 字符 ‘a’ ,但是千万不要以为这是一个单字节的,不管参数char code有多大或者有多小,得到的都是一个双字节的char。如果参数>=2^16 ,则实际按照模2^16来处理。
下面给出一个将二进制信息转换成16进制编码的小函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function bin2hex(str) { var result = ""; for (i = 0; i < str.length; i++ ) { var c = str.charCodeAt(i); result += byte2Hex(c>>8 & 0xff); // 高字节 result += byte2Hex(c & 0xff); // 低字节 } return result; } function byte2Hex(b) { if(b < 0x10) return "0" + b.toString(16); else return b.toString(16); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function bin2hex(str) { var result = ""; for (i = 0; i < str.length; i++ ) { result += int16_to_hex(str.charCodeAt(i)); } return result; } function int16_to_hex(i) { var result = i.toString(16); var j = 0; while (j+result.length < 4){ result = "0" + result; j++; } return result; } |
问题: 如果二进制数据是奇数个字节怎么办呢?
如果需要JS操作,则:
1. 将数据转换成ucs-2编码,然后做进一步的其它编码
2. JS从其它编码解得ucs-2编码后,在通过utf16to8(…)转换成utf8编码
JS按字节操作二进制数据时,不要用字符串来做,要用字节数组来做(就是把字节code存放到数组里)。
一般来讲,JS能接收到的数据是非二进制的,或者说是对二进制数据做了16进制编码或base64编码(或其它编码),JS对编码的数据做解码时,解得的字节不要用String.fromCharCode(..)来处理直接存放为字符串,而是把解得的字节code放到一个数组里面,然后进行一系列的处理,最终处理后的数据可能还是二进制的,那么就把这些字节code从数组中直接做16进制或base64编码,然后输出。
关于网上的uf16to8(…)的函数: http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt
我觉得这只是一个概念上的逻辑,这样写并不能达到想要的效果。
首先,使用String.fromCharCode(…)来返回一个字节不对的,因为该函数返回的一定是2字节的,即使一个ascii字符; 另:该函数认为charCodeAt(…)取到的是一个字节的code,也是错误的,因为该函数总是按2字节取的。
或者,可以这样理解,这几个函数都是操作字符串对象的,而在JS中,字符串总是按照UCS-2来存储的,这些函数的输入和输出也都是UCS-2编码的