先说一下我之前学习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. 转 HTTP.SYS 详解

    http.sys 是一个位于Win2003和WinXP SP2中的操作系统核心组件, 能够让任何应用程序通过它提供的接口,以http协议进行信息通讯. 温馨提示:如果用户不慎删除了该驱动文件,不用担心 ...

  2. ①Jenkins集成—入门安装使用

    一.什么是Jenkins jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各 ...

  3. Git Flow分支策略

    就像代码需要代码规范一样,代码管理同样需要一个清晰的流程和规范 Vincent Driessen 同学为了解决这个问题提出了 A Successful Git Branching Model 下面是G ...

  4. [CLPR]BP神经网络的C++实现

    文章翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...

  5. Phonegap Android 项目使用Cordova

    要在已经创建好的Android项目里,使用Cordova. 1. 首先在Android Studio中创建Android项目 2. 创建cordova项目 cordova crate test com ...

  6. Quick guide for converting from JAGS or BUGS to NIMBLE

    Converting to NIMBLE from JAGS, OpenBUGS or WinBUGS NIMBLE is a hierarchical modeling package that u ...

  7. mediawiki 安装 部署 配置 使用学习

    学习资源: https://blog.csdn.net/gao36951/article/details/43965527 http://blog.csdn.net/hualichenxi123/ar ...

  8. NPOI-Excel系列-1000.创建一个标准的Excel文件

    using NPOI.HSSF.UserModel; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; name ...

  9. python 可视化 词云图

    文本挖掘及可视化知识链接 我的代码: # -*- coding: utf-8 -*- from pandas import read_csv import numpy as np from sklea ...

  10. 【POJ】2778 DNA Sequence(AC自动机+矩阵快速幂)

    题目 传送门:QWQ 分析 对着Trie图搞快速幂. 为什么这样是对的呢? 详见:http://www.matrix67.com/blog/archives/276 有些地方还不是很理解......为 ...