js关于random随机数,cookie的设置和取值注意事项,localstorage的运用

Random

得到的结果是一个小于5的随机数。而我们通常希望得到的是0-5之间的整数,所以我们需要对得到的结果四舍五入处理一下,从而得到我们期望的整数。parseInt()、Math.floor()和Math.ceil()都可以起到四舍五入的作用。

var randomNum = Math.random()*5;
alert(randomNum); // 2.9045290905811183
alert(parseInt(randomNum,10)); // 2
alert(Math.floor(randomNum)); // 2
alert(Math.ceil(randomNum)); // 3
由测试的代码我们可以看到,parseInt()和Math.floor()的效果是一样的,都是向下取整数部分。所以parseInt(Math.random()*5,10)和Math.floor(Math.random()*5)都是生成的0-4之间的随机数,Math.ceil(Math.random()*5)则是生成的1-5之间的随机数。
生成指定范围数值随机数

所以,如果你希望生成1到任意值的随机数,公式就是这样的:
// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);

如果你希望生成0到任意值的随机数,公式就是这样的:
// max - 期望的最大值
parseInt(Math.random()(max+1),10);
Math.floor(Math.random()
(max+1));

如果你希望生成任意值到任意值的随机数,公式就是这样的:
// max - 期望的最大值
// min - 期望的最小值
parseInt(Math.random()(max-min+1)+min,10);
Math.floor(Math.random()
(max-min+1)+min);

cookie

  1. JS 原生的 API提供了获取cookie的方法:document.cookie;
    因为cookie本身就是存储在浏览器中的字符串。但这个字符串是有格式的,由键值对 key=value构成,键值对之间由一个分号和一个空格隔开
  2. cookie 的属性选项
    每个cookie都有一定的属性,如什么时候失效,要发送到哪个域名,哪个路径等等。在设置这些属性时,属性之间由一个分号和一个空格隔开
  3. httpOnly
    这个选项用来设置cookie是否能通过 js 去访问。默认情况下,cookie不会带httpOnly选项(即为空),所以默认情况下,客户端是可以通过js代码去访问(包括读取、修改、删除等)这个cookie的。当cookie带httpOnly选项时,客户端则无法通过js代码去访问(包括读取、修改、删除等)这个cookie。
  4. secure
    secure选项用来设置cookie只在确保安全的请求中才会发送。当请求是HTTPS或者其他安全协议时,包含 secure 选项的 cookie才能被发送至服务器。
  5. domain 和 path
    domain是域名,path是路径,两者加起来就构成了 URL,domain和path一起来限制 cookie 能被哪些 URL 访问。
  6. expires
    expires选项用来设置“cookie 什么时间内有效”。expires其实是cookie失效日期,expires必须是 GMT 格式的时间(可以通过new Date().toGMTString()或者 new Date().toUTCString() 来获得)。个人不建议使用,亲测不好使
    expires 是 http/1.0协议中的选项,在新的http/1.1协议中expires已经由 max-age 选项代替,两者的作用都是限制cookie 的有效时间。expires的值是一个时间点(cookie失效时刻= expires),而max-age 的值是一个以秒为单位时间段(cookie失效时刻= 创建时刻+ max-age)。
    另外,max-age 的默认值是 -1(即有效期为 session );若max-age有三种可能值:负数、0、正数。负数:有效期session;0:删除cookie;正数:有效期为创建时刻+ max-age。纠正,亲测负数有效期并非session,如想设session有效期,建议直接不设置,默认则为session

cookie设置示例;

document.cookie="userName="+UserName+";SameSite=Lax;path=/;max-age=0";
	document.cookie="userName="+UserName+";SameSite=Lax;path=/;max-age=0";
	document.cookie="nickName="+name+";SameSite=Lax;path=/;max-age=0";
	document.cookie="login="+login+";SameSite=Lax;path=/;max-age=0";
	document.cookie="tourRistLogin="+tourRistLogin+";SameSite=Lax;path=/;max-age=0";
	if (!tourRigistLogin||login) {
		document.cookie="userName="+UserName+";SameSite=Lax;path=/";
		document.cookie="nickName="+name+";SameSite=Lax;path=/;max-age="+60*60;
		document.cookie="login="+login+";SameSite=Lax;path=/";
		document.cookie="tourRistLogin="+tourRistLogin+";SameSite=Lax;path=/";
	}

cookie取值示例

取值需要注意,document.cookie得到的值为字符串,必须取值的时候加上split“; ”,分割后得到的值才是数组。另外,分割条件注意是分号+空格

cookeis=document.cookie.split("; ");
	$.each(cookeis, function(k,d) {
		val01=d.split("=");	
		switch (val01[0]){
			case "login":login=val01[1];
				break;
			case "tourRistLogin":tourRistLogin=val01[1];
				break;
			case "nickName":nickName=val01[1];
				$("#longinUser").html(nickName);
				break;
			case "userName":userName=val01[1];
				$("#longinUserName").html(userName);
				break;
			default:
				break;
		}	
	});

localstorage的使用

  1. 首先在使用localStorage的时候,我们需要判断浏览器是否支持localStorage这个属性
    if(!window.localStorage){
    alert(“浏览器不支持localstorage”);
    return false;
    }else{
    //主逻辑业务
    }
  2. localStorage的写入
    if(!window.localStorage){
    alert(“浏览器不支持localstorage”);
    return false;
    }else{
    var storage=window.localStorage;
    //写入c字段
    storage.setItem(“c”,3);
    console.log(typeof storage[“c”]);
    }
  3. localStorage的读取
    if(!window.localStorage){
    alert(“浏览不器支持localstorage”);
    }else{
    var storage=window.localStorage;
    //读取
    var c=storage.getItem(“c”);
    console.log©;
    }
  4. localStorage的删除
    1、将localStorage的所有内容清除
    var storage=window.localStorage;
    storage.clear();
    console.log(storage);
    2、 将localStorage中的某个键值对删除
    var storage=window.localStorage;
    storage.setItem(“c”,3);
    console.log(storage);
    storage.removeItem(“c”);
    console.log(storage);
  5. 一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式
    这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串
    示例:
    if(!window.localStorage){
    alert(“浏览器不支持localstorage”);
    }else{
    var storage=window.localStorage;
    var data={
    name:‘xiecanyong’,
    sex:‘man’,
    hobby:‘program’
    };
    var d=JSON.stringify(data);
    storage.setItem(“data”,d);
    console.log(storage.data);
    }
    读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法
    var storage=window.localStorage;
    var data={
    name:‘xiecanyong’,
    sex:‘man’,
    hobby:‘program’
    };
    var d=JSON.stringify(data);
    storage.setItem(“data”,d);
    //将JSON字符串转换成为JSON对象输出
    var json=storage.getItem(“data”);
    var jsonObj=JSON.parse(json);
    console.log(typeof jsonObj);
    原文参考:https://blog.youkuaiyun.com/playboyanta123/article/details/79464684
    原文参考:https://www.cnblogs.com/st-leslie/p/5617130.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值