先说一下我之前学习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 知识遗漏点梳理。的更多相关文章

  1. 【原文】前端程序员必须知道的高性能Javascript知识

    原文:前端程序员必须知道的高性能Javascript知识 想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影. 本文会分享一些高效的JavaScript的最佳 ...

  2. 《jQuery风暴》第2章 必须知道的JavaScript知识

    第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部 ...

  3. Javascript知识——事件

    O(∩_∩)O~~又是新的一周开始了,今天还是在继续学习Javascript知识,今天主要讲了事件的知识.现在就总结下吧. 事件 事件一般是用于浏览器和用户操作进行交互.最早是 IE 和 Netsca ...

  4. Javascript知识四(DOM)

     [箴 10:4] 手懒的,要受贫穷:手勤的,却要富足. He becometh poor that dealeth with a slack hand: but the hand of the di ...

  5. WEBBASE篇: 第十一篇, JavaScript知识6

    JavaScript 知识6 一, String 对象 1,分隔字符串, 函数: split(seperator) 作用: 将字符串,通过seperator 拆分成一个数组: eg: var msg= ...

  6. WEBBASE篇: 第十篇, JavaScript知识5

    JavaScript知识5 <!doctype html> <html lang="en"> <head> <meta charset=& ...

  7. Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识

    摘要: 详解原型污染. 原文:Lodash 严重安全漏洞背后 你不得不知道的 JavaScript 知识 作者:Lucas HC Fundebug经授权转载,版权归原作者所有. 可能有信息敏感的同学已 ...

  8. javaScript知识储备

    javaScript知识储备 组成 ECMAScript(核心) 提供语法.变量等,遵循ECMA-262标准 DOM(文档对象模型) 提供操作HTML标签的API,遵循W3C规范 BOM(浏览器对象模 ...

  9. 详细的JavaScript知识梳理和经典的一百个例题,让你掌握JavaScript

    这里先做一下JavaScript知识点的梳理,具体的可领取资料 JavaScript语法: js语法.png DOM操作: DOM操作.png 数据类型 面向对象 继承 闭包 插件 作用域 跨域 原型 ...

随机推荐

  1. Linux之 linux7防火墙基本使用及详解

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disab ...

  2. windows 内存分配回收检查工具

    LeakDiag是微软一款检测memory leak的工具,使用比较简单 首先去下载一个ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20 ...

  3. 关于hashmap的排序

    刚学java不久 之前在学习hashmap的时候 无意间发现,诶?怎么结果是排序的,然后重新输入了好多次,握草,原来java 1.8都实现了hashmap的排序 天真的我没有去网上查,没有去想java ...

  4. C# 添加xml节点多了xmlns属性问题

    当父节点有xmlns属性时,动态创建子节点,会默认增加一个 xmlns=“” 的节点属性值. 原有 doc.CreateElement("son-node"); 改为 doc.Cr ...

  5. 最长上升子序列(LIS)n2 nlogn算法解析

    题目描述 给定一个数列,包含N个整数,求这个序列的最长上升子序列. 例如 2 5 3 4 1 7 6 最长上升子序列为 4. 1.O(n2)算法解析 看到这个题,大家的直觉肯定都是要用动态规划来做,那 ...

  6. HDU 1717 小数化分数2(最大公约数)

    小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  7. [转]VS2010 常用插件

    本文来自:http://developer.51cto.com/art/201403/432954_all.htm 虽然VS2010IDE功能已经非常强大了,但是在有些地方还是可以优化,或者说有更合适 ...

  8. 10-28质量监控ELK

    监控业务范围 app崩溃监控(Bugly) 应用性能监控(APM) 业务监控(TalkingData.友盟) 质量监控(缺位) 质量监控平台ELK elk官网 数据构造 线上错误状态分布 故障影响范围 ...

  9. Oracle 取某100天的每一天的日期

    SELECT TO_DATE('2016-01-01', 'yyyy-MM-dd') + ROWNUM - 1 as daylist,TO_DATE('2016-01-01', 'yyyy-MM-dd ...

  10. Oracle Lock(Enqueues)

    转载:http://www.cnblogs.com/Richardzhu/articles/2796540.html 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多 ...