先说一下我之前学习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. 微信跳一跳,Python辅助自动跳程序

    一.说明 此代码借鉴一位大神提供在gitHub上的源码,已经做了简化合并处理,成功连上手机并运行后,可实现自动玩微信跳一跳游戏,刷个1000+的分数轻轻松松 github源码地址 https://gi ...

  2. Spring boot的@Configuration

    就在我惊艳于spring 4的AbstractAnnotationConfigDispatcherServletInitializer小巧简洁(如下)的时候却发现spring boot下面竟然无效. ...

  3. 使用正则表达式去除html标签

    不知道大家遇到这话总情况没有,从数据库读取数据,数据参杂着html标记<p>等,在显式的时候控制字符个数,这个时候就会出现页面样式串行,使用正则表达式去除html标记就不会有还这个问题. ...

  4. Linq模型ObjectContext下查看Sql语句。

    ObjectContext 并没有提供 LINQ to SQL DataContext.Log 这样的功能,要查看实际生成的 T-SQL 语句,要么借助 SQL Server Sql Profiler ...

  5. RPC框架之Thrift分析(转)

    一.简介 1.Thrift是Facebook开发的跨语言的RPC服务框架.随后贡献给Apache开源组织.成为RPC服务的主流框架.   2.特点:  优点:       跨语言,支持java.c/c ...

  6. hadoop自带TestDFSIO学习

    hadoop系统中,包含了很多测试工具包,如测试mapreduce系统读写文件系统,有testDFSIO工具 首先安装好hadoop,配置好环境变量 进入share目录下的mapreduce目录下面, ...

  7. 【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法

    关于上篇文章留下的启动QtCreator提示:dbus_connection_can_send_type的错误,解决办法: 更新dbus版本来解决.. 首先去 http://dbus.freedesk ...

  8. openAL在mac下播放音源结束时判断处理

    音频播放完毕,自然停止 alGetSourcei(source[0], AL_BUFFERS_QUEUED, &state);    NSLog(@"queued number:%d ...

  9. nodepad++快捷键

    在用notepad++进行代码编辑的过程中,其实notepad++也可以进行单行.多行.区块注释和取消注释的....... 快捷键如下: 单行.多行注释              //方式       ...

  10. 从LinqPad入门Linq

    为什么要学习Linq? 在我们日常开发中,经常需要从数据库中执行各式各样的查询来获取需要的数据.但是如果需要对查询获得的数据进行二次筛选呢?linq就提供了对于可枚举类型(实现IEnumerable接 ...