ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaScript康复训练-2022年1月12日

2022-01-12 23:01:40  阅读:164  来源: 互联网

标签:编码 12 name 包装 javaScript URI var eval 康复训练


前言

今天大概了解了一些常识,草草总结一下吧,然后进入正轨学习啦!

URI

URI完整名为统一资源标识符(Uniform Resource Identifier),网址就是一种uri,而javaScript有几个方法专门来解析URI:encodeURI,encodeURIComponent,decodeURI,decodeURIComponent,其实就是一种编码形式,因为URI可能出现一些字符如中文,日文之类的,而浏览器解析肯定是要把编码统一管理才方便啊。encode开头就是编码,decode开头就是解码。
encodeURI常用于对整个URI进行编码,因为它并不会对URI本身的特殊字符编码如:’/’,而encodeURIComponent是对URI某一段进行编码,因为它会对所有除数字,字母的字符进行编码,至于两个decode方法则与之对应,不过多阐述

encodeURI("www.hao123.com/?name=敏感肌能用吗");
encodeURIComponent("www.hao123.com/?name=敏感肌能用吗");
decodeURI(encodeURI("www.hao123.com/?name=敏感肌能用吗"));

eval

eval很像java中的反射,他就像一个ECMA解析器,可以解析参数里面的字符串命令然后执行,大大增加了JavaScript动态性。

eval("alert('敏感肌能用吗')");

在非严格模式下,eval内部也可以定义变量,函数也是一个变量,所以也可以定义函数。在严格模式下,eval定义的变量,外部无法访问而报错。

eval("function show(msg){alert(msg);}");
eval("var x=114514;");
show(x);

包装类

以前介绍过利用new Object创建一个对象,可以直接加属性。问题来了,一个基础类型能直接加属性吗?

var x=new Object();
x.name="lxy";
console.log(x.name);

我们发现输出结果是undefined。这又是怎么一回事呢?快来随小编一起看看吧

var x=114514;
x.name="lxy";
console.log(x.name);

javaScript有三个特殊的包装类:String,Number,Boolean,当我们使用基础类的时候,会在后台自动实例化包装类,然后利用包装类间接操作,最后销毁包装类。

var x=114514;
x.name="lxy";
// 等效于下代码
var y=new Number(114514);
y.name="lxy";
y=null;

虽然提供给了我们包装类,但是并不建议大家直接实例化包装类使用,大家知道这个概念就好,因为包装类是属于Object对象,所以用typeof返回的是object,这也就很容易出一些莫名其妙的bug,难以一眼发现

var x=new Boolean(false);
// 结果是true
console.log(x&&true);
// 结果是false
console.log(false&&true);

标签:编码,12,name,包装,javaScript,URI,var,eval,康复训练
来源: https://blog.csdn.net/m0_52510907/article/details/122463813

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有