JavaScript显式类型转换与隐式类型转换

JavaScript 接口 弱类型 构造函数 类型转换

在 JavaScript 中声明变量不需指定类型,对变量赋值也没有类型检查,同时还允许隐式类型转换。 这些特征说明 JavaScript 属于弱类型的语言。

在强类型的 C++ 中,多数情况下构造函数需要声明为 explicit 来禁止隐式类型转换, 避免误用(见Item 15:资源管理类需要提供对原始资源的访问)。 弱类型的 JavaScript 中没有这一机制,比如下面的代码:

// 弹出对话框中输入1
var a = prompt('input a number');

var b = a + 1;

console.log(b);   // 控制台输出 11   

目前 JavaScript 还无法阻止 a 被隐式转换为字符串。 本文便来总结一下 JavaScript 的类型转换行为,以及隐式类型转换的规则。

HTML5本地存储:SessionStorage, LocalStorage, Cookie

Cookie DOM HTTP JavaScript LocalStorage Session jQuery

SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对!。 区别在于前两者属于WebStorage,创建它们的目的便是存储客户端数据。 而Cookie早在网景公司的浏览器中就开始支持,最初目的是为了保持HTTP的状态。

概念的异同

Cookie是存储在客户端的小型文本文件,可以包含若干键值对,每个键值对可以设置过期时间(默认过期时间为关闭浏览器时)。 Cookie会在每次发送HTTP请求时附加到Cookie头字段,服务器以此得知用户所处的状态。 在HTTP标准中,规定Cookie至少要有4K,至少支持300项Cookie,每个域名至少支持20项。

HTTP中Cookie的规范可以参考:读 HTTP 协议

LocalStorageSessionStorage都是本地存储,不会被发送到服务器上。同时空间比Cookie大很多,一般支持5-10M。 与Cookie类似,每个域名下会有不同的localStorage和SessionStorage实例,而且localStorage可以在多个标签页中互相访问。 其中LocalStorage没有过期时间,除非手动删除它会一直存在。而SessionStorage在浏览器会话结束时(关闭标签页,不包括刷新和跳转)清空。

注意SessionStorage中的Session指的是浏览器会话,而非服务器端通过Cookie实现的Session。参考:Cookie/Session的机制与安全

如何理解HTTP响应的状态码?

Cookie Git HTML HTTP Session WebSocket 表单 搜索引擎 缓存

我们知道HTTP协议是通过HTTP请求和HTTP响应来实现双向通信的。 HTTP状态码(HTTP Status Code)是用以表示Web服务器HTTP响应状态的3位数字代码,由RFC 2616规范定义。 合理的状态码不仅可以让用户或者浏览器做出更加合适的进一步操作,而且可以让客户端代码更加易于理解和维护。

HTTP状态码分为5类:1xx表示继续发送请求;2xx表示请求成功;3xx表示资源已找到但需要继续进行其他操作; 4xx表示客户端错误;5xx表示服务器错误。下面就具体详述常见状态码的语义,及其使用方式。

关于HTTP协议规范以及状态码在其中的作用,参见:读 HTTP 协议

导航: 上一页 下一页

加载中...

🔝