Javascript 知识遗漏点梳理。
先说一下我之前学习Javascript的学习经历,然后就是最近几天学到以前没有注意的知识遗漏点。
1.之前的学习经历和方法:
最开始是看了Javascript DOM编程与艺术这本书,把慕课网上的《JS基础篇》,《JS进阶篇》,包括W3CJS教程都刷了一遍,然后才看的Javascript高级程序设计 这本堪称入门红宝石的书,看到第五章《function类型》时发现进展非常缓慢,觉得前面还是太浮躁,一些基本的知识点没有理解透彻。
然后看到 《更快学习 JS 的 6 个简单思维技巧》这篇文章:
原文: https://www.sitepoint.com/mind-tricks-to-learn-javascript-faster/ 汉版 http://web.jobbole.com/88365/
文章中提到的几点我觉得说的很有道理,前面学习以为自己懂了,没有去彻底去研究去练习导致学到后面很难进行下去。文章中说的很有道理:
在学习 JavaScript 的过程中,快速理解某个概念可能是最不利于你进步的一件事。请允许我解释一下。
当你理解一些东西并且觉得它言之有理的时候,你会倾向于立即学习下面的内容。可能你会理解下面的内容并继续向下学习。但是很快,你会发现你已经忘记了之前所学到的一些东西,因此你需要重新复习。你很快的瞥一眼之前的概念更新下记忆然后继续往后学习。但是,这次你又忘记了其他的一些东西。你会不停的反反复复直到你发现你完全的迷失了方向。你会感到气馁,休息一下后,你准备重新开始,却发现已经忘记了所有的东西。
幸运的是只需要简单的两步就可以解决这个问题:
1. 限制一次学习的内容总量
2. 认真的练习——写代码
这段话我是深感认同,这大概是大部分像我一样的新手学习的一个误区所在。然后就是调整心态决定重新对照着视频认真过一遍。
2.三天来学到的知识遗漏点:
顺带提一下这过程中也学会了使用XMind来在学习中记录笔记,感觉非常棒。
1.Javascript屏蔽代码的方法:
<script type="text/javascript">
<!-- //不支持时"<!-- JS代码 //-->"被当做HTML注释掉了。
JS代码;
//--> //支持JS时"//-->"被认为是被注释了.
</script>
<noscript></noscript><!-- 如果浏览器不支持JS,可以使用这个标签来告诉用户您的浏览器不支持Javascript -->
2.Javascript数值转换:
- 隐式转换:转换成{undefined 、 null 、数值型(0.0或0或NaN)、字符串长度为0}-->false
- 强制转换:1.布尔值强制转换
//强制转换成布尔值假的情况。其他情况为真
var test=Boolean(0);
var text=Boolean(-0);
text=Boolean(NaN);
text=Boolean(undefined);
text=Boolean("");
text=Boolean(0.0);
text=Boolean("0");2.其他类型转换成字符串类型用String()方法。
3.其他类型转换成数值型三种方法 parseInt() Number() parseFloat()。需要注意的是Number函数将字符串转换为数值比parseInt严格多,只要有一个字符无法转换成数值就会被转换成NaN。
parseInt(val1,val2)接受两个参数 val1为要转换为数值的值,val2为要转换的方式(二进制,八进制。。)根据传进来的val1来判断以什么进制转换。 test=parseInt(3ye);//转换为3. 如果字符串的第一个字符不能被转换成数字,parseInt()会返回NaN
3.遗漏知识点:
//取余8%3 8除以3的余数为2。如果3%8 3里面能减去0个八,那就不减了,还剩下3,所以余数是3.
document.write(3%-8);//3,因为8前面的-号不起作用。
document.write(-3%8);//-3
document.write(-3%-8);//-3
var i=3;
var j=8;
document.write(""+i+j+"3ye");//383ye
document.write(i+j+"3ye");//113ye
//Js代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据)依然被作为数值来处理,为了避免这种情况我们可以在表达式前拼接一个空字符串。
//void运算符用来指明一个表达式无返回结果。
//eg:
var z = (a=1,b=2,c=3);//z=3;
var z= void(a=1,b=2,c=3)//z=undefined
- 字符串不支持自增自减运算符。
- !=和!==没有区别。
- null和undefined的区别:
null表示一个值被定义了,定义为“空值”。
underfined表示根本不存在定义。
所以设置一个值为Null是合理的,如:objA.valueA=null;
但设置一个值为undefined是不合理的。 函数没有return时返回值为undefined,函数碰到return立即结束,不再执行下面的代码。
function text(){
alert("this is test function")
}
alert(text());//第一弹 this is test function 第二次弹 undefined function text(){
alert("this is test function")
return "xiangwang";
}
alert(text());//第一弹 this is test function 第二次弹 "xiangwang"
- 函数不传参设置默认值的方法。
function text(num1,num2){
num1=num1||1;//相当于if(!!num1===false)num1=1;
num2=num2||2; //相当于if(!!num2===false)num2=2;
return num1+num2;
}
//!!表示强制转换为布尔值。
//不建议num1=num1||1;//相当于if(!!num1===false)num1=1; 这种方法设置函数默认参数。
//理由:--当num有值为0时也会变成1
// --当num有值为NaN时(很可能前面的计算有误),也会变成1.
//--另外当传入的值类型错误时,本来或许你的程序会报错,但是经过这个语句或许不会报错。
//建议使用的方法
if (num == null) num = 1
//当传入num为0时 默认值1不起作用
//而当使用num=num||1 当传入num为0时 默认值为1
后续继续补充。。。
Javascript 知识遗漏点梳理。的更多相关文章
- 【原文】前端程序员必须知道的高性能Javascript知识
原文:前端程序员必须知道的高性能Javascript知识 想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影. 本文会分享一些高效的JavaScript的最佳 ...
- 《jQuery风暴》第2章 必须知道的JavaScript知识
第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部 ...
- Javascript知识——事件
O(∩_∩)O~~又是新的一周开始了,今天还是在继续学习Javascript知识,今天主要讲了事件的知识.现在就总结下吧. 事件 事件一般是用于浏览器和用户操作进行交互.最早是 IE 和 Netsca ...
- Javascript知识四(DOM)
[箴 10:4] 手懒的,要受贫穷:手勤的,却要富足. He becometh poor that dealeth with a slack hand: but the hand of the di ...
- WEBBASE篇: 第十一篇, JavaScript知识6
JavaScript 知识6 一, String 对象 1,分隔字符串, 函数: split(seperator) 作用: 将字符串,通过seperator 拆分成一个数组: eg: var msg= ...
- WEBBASE篇: 第十篇, JavaScript知识5
JavaScript知识5 <!doctype html> <html lang="en"> <head> <meta charset=& ...
- Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识
摘要: 详解原型污染. 原文:Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识 作者:Lucas HC Fundebug经授权转载,版权归原作者所有. 可能有信息敏感的同学已 ...
- javaScript知识储备
javaScript知识储备 组成 ECMAScript(核心) 提供语法.变量等,遵循ECMA-262标准 DOM(文档对象模型) 提供操作HTML标签的API,遵循W3C规范 BOM(浏览器对象模 ...
- 详细的JavaScript知识梳理和经典的一百个例题,让你掌握JavaScript
这里先做一下JavaScript知识点的梳理,具体的可领取资料 JavaScript语法: js语法.png DOM操作: DOM操作.png 数据类型 面向对象 继承 闭包 插件 作用域 跨域 原型 ...
随机推荐
- 文档内容类似项处理-Shingling
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jituotianxia2009/article/details/25339807 集合的Jaccar ...
- PyCharm永久激活
目录 windws Mac Windows下破解 激活前准备工作 激活前请先关闭pycharm 修改配置文件的时候你需要填写你的安装路径 如果出现修改配置文件后无法打开pycharm,那就移动补丁的位 ...
- Http消息头中常用的请求头和响应头
作为Web开发对常用http的请求头和响应头熟悉了解一下还是很有必要的.比如请求头中Content-type指定了请求的内容,若类型是application/x-www-form-urlencoded ...
- dell R730 安装windwos 2008 R2在windows loading files...完成后屏幕无信号(iDrac绿屏)
dell R730 安装windwos 2008 R2在windows loading files...完成后,Starting Windows时屏幕无信号(iDrac绿屏) 解决方法: F2 进行 ...
- Phonegap 工程项目介绍
一.工程项目的路径在www下面,www下面的文件如下图 1. index.html <!DOCTYPE html> <!-- Licensed to the Apache Softw ...
- Linux vnc服务器操作(启动/停止/重起/自启动)
8.启动和停止VNC服务1)启动VNC服务命令[root@testdb ~]# /etc/init.d/vncserver startStarting VNC server: 1:rootNew 't ...
- [C++ Primer] 第2章: 变量
初始化与赋值 当对象在创建时获得了一个特定的值, 我们就说这个对象被初始化了. 在使用=号时, 如果创建了新的对象, 则为初始化而非赋值. 初始化不是赋值, 初始化的含义是创建变量时赋予其一个初始值, ...
- 【monkeyrunner】浅谈包名和activity名
概念理解 包名:顾名思义,包名即为程序app的包名. activity名:每个界面都是一个activity. 两者关系:一个包有多个activity. Monkeyrunner中 device.sta ...
- vs2012,2013 update 离线下载(知识库)
由于微软提供的update是在线安装的. 加上layout参数可以全部下载完再安装. 命令行或批处理 VS2013.4.exe /layout
- Java 判断是否包含指定的子串 contains()
Java 手册 contains public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true. 参数: s - 要搜 ...