1.字符串的操作
JavaScript中提供了很多字符串的操作,例如字符串的截断,字符串的链接等,所有这些操作都不会引起字符串本身的变化,操作的结果是返回一个新的字符串。substr和substring都是返回一个原来字符串的子串,二者的区别在于substring(m, n)表示的是[m,n)即左闭右开区间,而substr(m,n)表示的是[m,n]左闭右闭区间。
2.给字符串设置一个属性
我们定义一个字符串,然后给字符串设置一个len属性,发现我们设置的属性是无效的,看看下面的代码段
var s = "test";
s.len = 4;
var t = s.len;
上述程序中再次使用s.len的时候,发现t的值是undefined。第二行代码创建了一个临时字符串对象,并给其len属性赋值为4,随即销毁这个对象。第三行通过原始的字符串值创建一个新字符串对象,尝试读取其len属性,这个属性自然不存在,表达式求值结果为undefined。这段代码说明了在读取字符串,数字和布尔值的属性值的时候,表现的像对象一样。但是如果你试图给其属性赋值,则会忽略这个操作:修改只是发生在临时对象身上,而这个临时对象并未继续保留下来。
3.强制转换
在Javascript中我们写+x表示把x强制转换成数字,!!x表示把x强制转换成bool值。这两个强制转换要在平时写代码的时候灵活使用。
4.函数作用于的问题
在一些类似C语言的编程语言中,一对花括号之间定义的变量只有在花括号内部是有效的,出了花括号之后,这些变量就是不可见的,这就是所谓块级作用域的意思。但是在Javascript中没有块级作用域的概念,但是有函数作用域的概念,就是说在一个函数内声明的变量在当前函数体以及当前函数体中的任意嵌套函数体内都是可见的。
下面我们来看看一段和函数作用域有关的代码段:
var scope = "global";
function f() {
console.log(scope);
var scope = "local";
console.log(scope);
}
上述代码的输出结果是:undefined local,对于第一个输出为什么不是global呢?我们看完代码之后感觉第一个输出应该是global才对呀,但是输出结果却是undefined,就是说暂时还没有定义值,其实为啥不输出global的原因是因为我们在函数作用域中定义了scope这个变量,假如没有定义输出就是global了。由于函数作用域的特性,局部变量在整个函数体内始终是有定义的,也就是说在函数体内,局部变量遮盖了全局变量。同时这也说明了一个问题,在Javascript中变量的使用可以先于定义。其实上述代码的等价代码是:
var scope = "global";
function f() {
var scope;
console.log(scope);
scope = "local";
console.log(scope);
}
5.作为属性的变量
当声明一个Javascript全局变量时,实际上是定义了全局对象的一个属性,当使用var声明一个变量时,创建的这个属性是不可配置的,也就是说这个变量无法通过delete运算符删除。
6.关于对象的创建
我们知道在Javascript中可以使用new来创建一个对象,比如new Object();此时就创建了一个JS对象,我们可以认为Object()是一个构造函数,这个构造函数不带任何参数,如果是不带任何参数的构造函数,我们在创建对象的时候可以省略(),也就是说new Object()和new Object的效果是一样的。
如果一个构造函数确实返回了一个对象值,那么这个对象就作为整个对象创建表达式的值,而新创建的对象就废弃了。
7.关于属性的访问
在JS中属性访问定义了下面两种方式
expression.identifier
expression[expression]
显然.identifier的写法更加简单,对于使用过C++/JAVA的程序员而言这是一种非常熟悉的方式,但是coder要注意的是,这种方式只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性的名字。如果属性名称是一个保留字或者包含空格和标点符号,或者是一个数字(对于数组来说),则必须使用方括号的写法。当属性名是通过运算得出的值而不是固定值的时候,这时必须使用方括号写法。
分享到:
相关推荐
就是几个demo不断测试,感觉没有什么可说的最后甚至对webapp中的History的处理方案也是有一些心得,一点方案,但是依旧难以整理成文,于是便开始文荒了这个时候不妨便温故知新吧,对javascript的一些老知识点进行...
下面是我自己写的一些知识点摘要和博客,都是自己一点一滴的积累,会一直坚持下去,希望对大家也有所帮助! 如果文章中图片访问异常,一般是墙的问题。无妨,如果您使用的是国内网络,可以点击下面的博客链接看这些...
个人知识在线管理是基于互联网的个人知识管理平台,通过此平台用户可以添加个人知识新知识点,修改知识点,查询知识点,查看知识点,删除知识点,搜索知识点,和修改个人信息。方便对日常学习生活中积累的知识进行...
react-article-bucket:总结,积累,分享,传播JavaScript各模块核心知识点文章全集,欢迎星级,问题(勿用fork,内容可能随时修改)。webpack核心内容部分请查看专栏:https://github.comliangklfanglwebpack-核心...
知识在于积累 关注公众号,可以及时接收更新哦 欢迎大家Star:glowing_star::glowing_star: React系列 ES6系列 函数部分 变量的解构赋值 字符串扩展 数值的扩展 Symbol Set和Map Proxy和Reflect Promise Vue.js系列 ...
——针对286项关键技能点逐一突破 ——斥资2000万,组织186名中美印专家投入研发 高强训练编程能力——1年半完成52000行代码编写 ——相当于1名程序员2年代码编写量 项目驱动案例贯穿——提供CRM、ERP...
js基础知识盘点,提供了一些编程时需要注意的问题,并且都有代码解释
==============================string-Method字符串方法总汇==============================node-Knowledge-pointsnodejs知识点积累!==============================vue-demo and vue knowledge==
同时我也会做一些简单知识的积累。我为什么要这样做呢?:ox:直接原因:面试可能要问,网上有很多面试题,作为前端开发,js是必须问的,:thinking_face:第一道数据的基本类型。。。。,也许大家都很熟悉,那么js的...
其实没有什么新的知识点,只是为了方便其他有需要的朋友们翻阅,对自己而言也算是一个积累,所以只能算是闲谈 JavaScript,老鸟们可以尽情飘过。在进入正题之前,先提个问题热热身吧。现在有如下 HTML 结构: 代码...
随着不断学习,开始接触源码,才发现之前的理解过于肤浅,因此想不断积累vue的相关知识。 做项目从中接触到了什么?:backhand_index_pointing_right:(提示:正在更新中 :sun_behind_cloud:) Vue API 之前学习Vue的...
这里可以让你寻找到使用或者是学习作者建立的前端知识体系, ...vue你应该知道的知识点 vue-配置按需加载 React 10分钟了解react新特性hooks hooks之memo和useCallback useRequest封装 权限管理 从零
blog 从 转战 GayHub,以免“误人子弟”,自己也能写的更随意一些。 希望通过点滴的积累,串联成知识的海洋。
如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql” “oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点的细节。这也是涨知识的重要...
在学习前端的过程中发现知识点比较琐碎,自己整理的时候比较分散,希望在这里将自己学过的内容进行集中整合,形成自己的一套体系,便于以后回顾:grinning_squinting_face:想了很久决定从事前端开发,希望自己学会...
CRMEB知识付费分销+直播营销系统如果对您有帮助,您可以点右上角 "Star" 支持一下 谢谢!项目介绍CRMEB知识付费系统是西安众邦科技旗下的具有自主知识产权的在线教育知识付费系统。系统基于ThinkPhp5.0+layui+Vue...
在JavaEE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML基础知识,最好再掌握...
这是Extibax Portfolio V2,将开始开发此Portfolio,以开始正确地积累个人项目 描述: 该产品组合是对我之前的产品组合的更新,这是我之前制作的第一个网页之一: : 对于这个新产品组合,我的目标是集中一点更好地...