如何用js将多个变量保存到cookie中,然后再分别提取?

JavaScript09

如何用js将多个变量保存到cookie中,然后再分别提取?,第1张

function GetCookieVal(offset)

//获得Cookie解码后的值

{

var endstr = document.cookie.indexOf ("", offset)

if (endstr == -1)

endstr = document.cookie.length

return unescape(document.cookie.substring(offset, endstr))

}

//---------------------------

function SetCookie(name, value)

//设定Cookie值

{

var expdate = new Date()

var argv = SetCookie.arguments

var argc = SetCookie.arguments.length

var expires = (argc >2) ? argv[2] : null

var path = (argc >3) ? argv[3] : null

var domain = (argc >4) ? argv[4] : null

var secure = (argc >5) ? argv[5] : false

if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ))

document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("expires="+ expdate.toGMTString()))

+((path == null) ? "" : ("path=" + path)) +((domain == null) ? "" : ("domain=" + domain))

+((secure == true) ? "secure" : "")

}

注意:在javascript语言中,key的值只能是字符串,不能是其它的。

在javascript中,对象本身就是一种Map结构。

var map = {}

map['key1'] = 1

map['key2@'] = 2

console.log(map['key1'])//结果是1.

console.log(map['key2@'])//结果是2.

//如果遍历map

for(var prop in map){

if(map.hasOwnProperty(prop){

console.log('key is ' + prop +' and value is' + map[prop])

}

}

动态的赋值key:

var key1 = '动态key1'

var key2 = '动态key2'

var map = {}

map[key1] = 1

map[key2] = 2

console.log(map[key1])//结果是1.

console.log(map[key2])//结果是2.

//如果遍历map

for(var prop in map){

if(map.hasOwnProperty(prop){

console.log('key is ' + prop +' and value is' + map[prop])

}

}

扩展资料

JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。

直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰

console.log("a")//这是正确的

console.log("b")//这是正确的

console.logg("c")//这是错误的,并且到这里会停下来

console.log("d")//这是正确的

console.log("e")//这是正确的

/*解决办法*/

try{console.log("a")}catch(e){}//这是正确的

try{console.log("b")}catch(e){}//这是正确的

try{console.logg("c")}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过

try{console.log("d")}catch(e){}//这是正确的

try{console.log("e")}catch(e){}//这是正确的

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。

V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译)。

但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是C++)。因此在不同的测试上,两者性能互有优劣。

与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

参考资料来源:百度百科:javascript

在JS中变量被分为基本类型变量和引用类型变量。1、基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值。2、引用类型变量则只保存对对象、数组和函数等引用类型的值得引用(即内存地址)。JS字符串的长度受到下标限制。理论最大长度是2^53-1(即js中可表达的最大安全整数)。2^53是多大呢?大约9PB。根据统计,中国2014年所有出版物(不计复本)不到2000亿字,也就是400GB而已。按此推算,不要说存一个txt了,中国自有甲骨文以来所有的书、各类出版物字数加在一起估计也不可能超过100TB,也就是0.1PB。当然啦,实际引擎是不可能允许分配那么大的字符串的,你的电脑也没那么大存储不是。V8的heap上限只有2GB不到,允许分配的单个字符串大小上限更只有大约是512MB不到。JS字符串是UTF16编码保存,所以也就是2.68亿个字符。FF大约也是这个数字最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的。而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16。因此本文只对这两种编码进行讨论。