JavaScript初学者建议:不要去管浏览器兼容

如果可以回到过去的话,我会告诉自己这句话:"初学JavaScript的时候无视DOM和BOM的兼容性"

 我初学时的处境

  在我初学JavaScript的时候最头痛的就是浏览器兼容问题。在Firefox下面好好的代码放到IE就不能显示了,又或者是在IE能正常显示的代码在firefox又报错了。

  前端开发工程师的职责就包括跨浏览器开发。所以我就在还不了解JS这门语言本身的时候去花时间学习浏览器兼容知识,这样会让JS学习难度增加。但是不能兼容主流浏览器的代码不能用在实际项目中。

  DOM和BOM的兼容性问题一度让我的JavaScript学习停滞不前。语言理解不够,代码又只能在特定浏览器运行。

 我的建议

  如果你正初学JavaScript并有着和我一样的处境的话我建议你:初学JavaScript的时候无视DOM和BOM的兼容性,将更多的时间花在了解语言本身(ECMAScript)。只在特定浏览器编写代码(Chrome/Firefox/Safari),实际工作中使用成熟的JavaScript框架(jQuery等)。放心,很少有公司会让JS新手用原生JS做前端开发。

  学习JS初期无视兼容问题有什么好处

降低学习难度
减少挫败感
花更多的时间学习ECMAScript

 什么时候学习JS跨浏览器开发知识

  而浏览器兼容问题留到什么时候解决呢?

  当你能熟练使用JavaScript框架编写可复用的代码时(jQuery插件或前端控件),或当你准备自己开发一个JavaScript框架时。

 其他一些JavaScript初学者建议

千万不要拿JavaScript权威指南当入门书籍
应该用JavaScript高级程序设计(第三版)作为入门书籍
传值和传值、作用域知识必须理解
调试工具必须懂并多用,学会自己捕捉错误。(chrome developer tool/Firebug)
耐心再耐心,对每一个知识点深挖能学的更轻松。

  以上就是我的一些分享希望若能帮助到初学JavaScript的你,如果觉得有误导的地方敬请立即指出。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
排序的方法有很多,本节介绍的是使用数组的push方法完成快速排序 function quickSort(arr){ if(arr.length = 1) return arr;//判断是否有效数组 var cut = Math.floor(arr.length/2);//取中间下标 var left = [],right = []; var num = arr.splice(cut,1)[0];//取基准值 for(var i = 0;i arr.length;i ++){ if(arr[i] num){
如果在页面中包含一个ajax更新的列表,那么需要小心非动态更新部分的事件处理。 以带有公共工具栏的列表界面为例: | Menu1 | Menu2 ---------------------------------------------------------------------------- ID TITLE DESCRIPTION OPERATION 1 test1 hey test X - ... 2 test2 why not X - ... -------------------------
方法一 复制代码 代码如下: function print_r(theObj) { var retStr = ''; if (typeof theObj == 'object') { retStr += 'div'; for (var p in theObj) { if (typeof theObj[p] == 'object') { retStr += 'divb['+p+'] = ' + typeof(theObj) + '/b/div'; retStr += 'div' + print_r(theOb

JavaScript操作cookie类实例 - 2015-04-19 11:04:08

本文实例讲述了JavaScript操作cookie类。分享给大家供大家参考。具体如下: 用法: 一、设置cookie var cookie = new JSCookie();// 普通设置cookie .SetCookie("key1","val1");// 过期时间为一年var expire_time = new Date();expire_time.setFullYear(expire_time.getFullYear() + 1);cookie .SetCookie("key2","val2",ex
1 判断是否为数组类型 复制代码 代码如下: STRONGscript type="text/javascript" //![CDATA[ var a=[0]; document.write(isArray(a),'br/'); function isArray(obj){ return (typeof obj=='object')obj.constructor==Array; } //]] /script/STRONG 2 判断是否为字符串类型 复制代码 代码如下: script type="text/j
看到很多网上对含特殊字符 json 数据处理,都是逐个判断是哪个特殊字符,比如回车如何处理,引号如何处理。其实有现成的代码库可以做这件事情,下载 json-lib-2.3-jdk15.jar : 复制代码 代码如下: import net.sf.json.util.JSONUtils; String str = (String) value; String s1 = JSONUtils.quote(str);//首尾带引号 String s3 = JSONUtils.stripQuotes(s1);//去首
当点击顶部按钮的时候,执行方法,scrollTop属性获取选中标签距滚动条的距离,当点击底部标签时候,执行方法,其中offset()获取匹配元素在当前视口的相对偏移 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"html xmlns="http://www.w3.org/1999/xhtml" headtitleUn
demo04.html 复制代码 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8"
在js页面加载时运行如下代码 复制代码 代码如下: window.onbeforeunload = function(){ return "未保存的内容可能会丢失"; }; 此代码在火狐和ie下不会显示return的值在google浏览器下显示此文字。 失效控制 触发js运行如下: 复制代码 代码如下: window.onbeforeunload = function(){};

javascript Array 数组常用方法 - 2015-04-19 11:04:00

(1)基本的数组方法 1.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。可以自己指定分隔的符号,如果不指定,默认使用逗号 var arr = [1,2,3];console.log(arr.join());//"1,2,3"console.log(arr.join("-"));//"1-2-3"var a = new Array(10); //长度为10的空数组 组成下边字符串console.log(a.join("-"));//"------