初学者必看的JavaScript 七大点!

知识说明:

学JavaScript七大注意事项【必看】,javascript七大必看

知识说明:

初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代码更易懂、效率更高。

一、简化代码

例如:创建对象

之前是这样的:

Var car = new object();

Car.color = “red”;

Car.wheels = 4;

Car.age = 8;

而现在可以写成这样子:

Var car = {color:’red’, wheels:4, age:8}

例如:创建数组

之前是这样的:

Var studentArray = new Array(‘zhangsan’, ‘lisi’, ‘zhaowu’, ‘wuliu’);

而现在可以写成这样子:

Var studentArray = {‘zhangsan’, ‘ lisi’, ‘zhaowu’, ‘wuliu’};

例如:使用三元运算符简化代码

之前的写法是:

Var result;

if(x > 100)

{

    Result = 1;

}else{

    Result = -1;

}

而现在可以写成:

Var result = x >100 ? 1 : -1;

二、使用JSON作为数据格式

使用Json格式来存储数据:

var band = {

 "name":"The Red Hot Chili Peppers",

 "members":[

  {

   "name":"Anthony Kiedis",

   "role":"lead vocals"

  },

  {

   "name":"Michael 'Flea' Balzary",

   "role":"bass guitar, trumpet, backing vocals"

  },

  {

   "name":"Chad Smith",

   "role":"drums,percussion"

  },

  {

   "name":"John Frusciante",

   "role":"Lead Guitar"

  }

 ],

 "year":"2009"

}

也可以使用JS来存储数据,代码如下:

<div id = “dataDiv”></div>

<script>

    Function saveData(data)

{

    Var out =“<ul>”;

    For(var i=0; i<data.length; i++)

{

    Out += “<li><a href =”'+data[i].url+'”>+

data[i].d+</a></li>”;

}

Out += ‘</ul>';

Document.getElementById(‘dataDiv').innerHTML = out;

}

</script>

甚至可以将上面JS生成的存储数据的作为API的返回值

<script
src=”;

</script>

三、尽量使用JavaScript原生函数

例如:获取一组数据中的最大值

var maxData = Math.max(0,20,50,10);

alert(maxData);   //返回的最大值为50

例如:使用JS给一个元素添加class样式,代码片段如下:

Function addClass(elm, newclass)

{

    Var classes = elm.className.split(‘ ‘ );

    Classes.push(newclass);

    Elm.className = classes.join(‘ ');

}

四、事件委托

例如:

<h2>Great Web resources</h2>

<ul id="resources">

 <li><a href="http://opera.com/wsc">Opera Web Standards

Curriculum</a></li>

 <li><a href="http://sitepoint.com">Sitepoint</a></li>

 <li><a href="http://alistapart.com">A List Apart</a></li>

 <li><a href="http://yuiblog.com">YUI Blog</a></li>

 <li><a href="http://blameitonthevoices.com">Blame it on the

voices</a></li>

 <li><a href="http://oddlyspecific.com">Oddly specific</a></li>

</ul>

最佳脚本书写方式:

(function(){

 var resources = document.getElementById('resources');

 resources.addEventListener('click',handler,false);

 function handler(e){

  var x = e.target; // get the link tha

  if(x.nodeName.toLowerCase() === 'a'){

   alert('Event delegation:' + x);

   e.preventDefault();

  }

 };

})();

五、匿名函数

var myApplication = function(){

 var name = 'Chris';

 var age = '34';

 var status = 'single';

 function createMember(){

  // [...]

 }

 function getMemberDetails(){

  // [...]

 }

 return{

  create:createMember, get:getMemberDetails

 }

}();

//myApplication.get() and myApplication.create() now work.

六、代码可配置

你写的代码如果想让别人更容易进行使用或者修改,则需要可配置,解决方案是在你写的脚本中增加一个配置对象。要点如下:

1、在你的脚本中新增一个叫configuration的对象。

2、在配置对象中存放所有其它人可能想要去改变的东西,例如CSS的ID、class名称、语言等等。

3、返回这个对象,作为公共属性以便其它人可以进行重写。

七、代码兼容性

兼容性是初学者容易忽略的部分,通常学习Javascript的时候都是在某个固定的浏览器中进行测试,而这个浏览器很有可能就是IE,这是非常致命的,因为目前几大主流浏览器中偏偏IE对标准的支持是最差的。最终用户看到的结果也许就是,你写的代码在某个浏览器无法正确运行。你应该把你的代码在主流的浏览器中都测试一下,这也许很费时间,但是应该这样做。

以上这篇学JavaScript七大注意事项【必看】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。

知识说明:
初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代…

这里有一些
Javascript初学者应该知道的技巧和陷阱。如果你已经是专家了,顺便温习一下。

当我们进行厨房装修时,都会碰到各种各样的问题,如何提前避免出现这些问题,是我们在装修厨房前,必须要认真了解的知识点。

80后开始成为购房主力军,买房子时应该注意什么呢?7大建议必看!

初学JavaScript,注意以下七大细节,在实现同样功能的情况下,让我们的代码更易懂、效率更高。

图片 1

装修厨房注意事项

1、贷款自己还

一、简化代码

Javascript也只不过是一种编程语言。怎么可能出错嘛?

一、厨房设计

首付可以找父母,但鼓励自己贷款,毕竟他们赚养老钱不容易。适当“啃老”并不丢人,现在房价这么高,在80后还没有能力支付大笔首付时,父母的支持是80后最坚实的后盾。不过在爸妈打好基础之后,就需要自己为月供努力了。

例如:创建对象

  1. 你有没有尝试给一组数字排序?

厨房的装饰设计不应影响厨房的采光、通风、地磅照明等效果。在设计上首先要考虑安全问题。隐蔽工程一定要做好,尤其是厨房的插座位置要妥当,否则会影响到厨柜的尺寸和整体效果。

建议:自己动手丰衣足食,80后最大的问题就是依赖思想,一旦开了第一个口,后面的口再开,不少80后就会心安理得的。中国有一句老话“置之死地而后生”,还是完全靠自己赚来的房子比较心安理得。

之前是这样的:

Javascript
的sort()函数在默认情况下使用字母数字(字符串Unicode码点)排序。

图片 2

2、物业要选好

Var car = new object();

所以[1,2,5,10].sort() 会输出 [1, 10, 2, 5].

二、厨房瓷砖

水管爆裂、电线跳闸、电梯的灯像鬼火一样闪,遇到这种问题,怎么办?我们买房子是想要安心地居住,安静地生活,这些乱七八糟的事情丢给物管来操心就OK.。

Car.color = “red”;

要正确的排序一个数组, 你可以用 [1,2,5,10].sort((a, b) => a — b)

厨房瓷砖应考虑室内光线的照射度,太亮与太暗的空间应采用哑光且色彩淡雅的瓷砖,避免造成光污染,形成视觉疲劳。地面瓷砖的选择在考虑色彩与光泽以外,还要重视使用的舒适性,应选择防滑的瓷砖,以免滑倒摔伤,造成身体伤害。

建议:个人觉得,中国可能有一流的房子和小区,但是一流的物业暂时还不会出现,近几年来物业问题不断被媒体曝光,想要找一个好的物业的难度一点也不次于找一个适合自己的房子,物业只负责他们认为该负责的,想要乱七八糟的事情丢给物管来操心就OK了,这种想法是不可取的。

Car.wheels = 4;

很简单的解决方案, 前提是你得知道有这么个坑

三、抽油烟机

3、千万别买郊区房

Car.age = 8;

  1. new Date() 很棒

抽油烟机挑选一要看排烟率,国家规定该指标值大于或等于7立方米/min;其次是笼烟效果,深型抽油烟机的集烟腔较深,笼烟效果较好;风压也是横梁抽油烟机使用性能的重要指标,风量达到7立方米/min时,风压大于或等于80Pa。图片 3

对于爱睡懒觉的80后来说,每天6点起床上班,在上下班路上花上2小时的生活显然是不可取的。而且以后交通仍然是问题,需要自己考察,别听开发商的,你可能有车,你老婆一般就没有。方便的交通可以让我们在这个城市活动得更自如,况且郊区房子升值慢、升值空间小配套也不齐全,到时候住着不爽想转手
都卖不出去就麻烦了。

而现在可以写成这样子:

new Date() 可以接受:

四、防水问题

建议:现实的残酷会让很多80后的坏毛病给改掉的,试想一下,整天忙着生活,忙着柴米油盐的人有心思睡懒觉吗?

Var car = {color:’red’, wheels:4, age:8}

没有参数: 返回当前时间

厨房是经常与水打交道的地方,如洗菜盆、地面的角等。洗菜盆要做好防水的接口,否则,会让木质橱柜常年处于一个泡水的状态,从而缩短使用命。

4、跟朋友做邻居

例如:创建数组

一个参数 x: 返回1970年1月1日 + x 毫秒。 了解 Unix 的人知道为什么。

五、光线问题

80后购房时大部分在意自己的邻居是谁,与其忐忑不安地猜测隔壁住的是恐龙还是怪大妈,不如自带个邻居,和好朋友一起买房。80后的独生子女居多,无法感受到和兄弟姐妹一起住的乐趣。那么不如和好友住一起,关上门有自己的小空间,打开门又能随时和大家一起聚会玩耍,一举N得。

之前是这样的:

new Date(1, 1, 1) 返回 1901, 二月 ,
1号。因为,第一个参数表示1900年加1年,第二个参数表示这一年的第二个月(因此是二月) — 脑回路正常的人会从1开始索引 — ,第三个参数很明显是这个月的第一天,所以1 — 有时候索引确实从1开始 — 。

充足,晚上的灯光也要够亮,并且灯光的颜色应该是白色的,否则,在厨房做菜,会影响对色泽的判断,饭菜的火候不易掌握。同时还要避免灯光产生阴影,尽量不用射灯

建议:80后还有一个特性就是好玩,要是和朋友做了邻居,隔三差五的去KTV唱唱歌,聚聚餐了,请问这样的开支,就凭80后现在的这点收入够他们折腾的吗?还贷款的事又要等到猴年马月了吧。

Var studentArray = new Array(‘zhangsan’, ‘lisi’, ‘zhaowu’, ‘wuliu’);

new Date(2016, 1, 1) 不会给1900年加上2016。它仅代表2016年。

六、安全问题

5、买房要考虑升值空间

而现在可以写成这样子:

  1. Replace 并不“替代”

注意保持厨房的通风,否则在房湿润的条件下,容易滋生大量的细菌,从而影响我们的饮食健康。图片 4

“等咱有了钱,迟早是要住大房子的,光阳台上种的小麦就可以开个包子店。”住大房子是好多人的理想。80后第一次置业大多选择小户型,几年后,
随着条件的改善不少人会换大房子。所以,第一次买房除了自住环境价格等等,投资价值也要考虑清楚才行,因为迟早我们要去住大房子的。

Var studentArray = {‘zhangsan’, ‘ lisi’, ‘zhaowu’, ‘wuliu’};

lets = “bob”

厨房是居家中重要的场所,其装修应充分体现实用性,方便我们日常生活的使用。

建议:买房子要考虑升值空间,这恐怕每个人都知道吧,有升值空间的房子还能轮到80后买吗,早被炒房团给抢购一空了。

例如:使用三元运算符简化代码

constreplaced = s.replace(‘b’,’l’)

6、孩子,还是孩子……

之前的写法是:

replaced === “lob”

买房了,结婚了,生孩子了……人生大事一件件按部就班地说来就来了。80后的孩子们眼看着就成了新爸新妈,所以买房时得把孩子纳入家庭大计考虑。等到孩子该上学了,再发现没好学校选择就晚了。80后的新爸新妈该未雨绸缪一下,不要让自己的糊涂牵连孩子输在起跑线上。

Var result;

if(x > 100)

{

    Result = 1;

}else{

    Result = -1;

}

s === “bob”

建议:有多少80后觉得自己有资格或者有充分的准备为人父、为人母了。现在的80后能照顾好自己就已经很不错了,先修好自己的身再去考虑下一代的事吧?

而现在可以写成:

我觉得这是一件好事,因为我不喜欢函数改变它们的输入。 你还应该知道
replace 只会替换第一个匹配的字符串:

7、买房也要学会省钱

Var result = x >100 ? 1 : -1;

如果你想替换所有匹配的字符串,你可以使用带/g标志的正则表达式 :

虽说买房是件很费钱的事,但是我们聪明的80后还是有很多办法省钱的。如果你是买二手房,一定要学会跟房东砍价,即便你很喜欢这套房,也切记不要在房东面前表现出来,能省一点是一点。80后作为买房主力军还是多看看买房注意事项再出手最好~

二、使用JSON作为数据格式

“bob”.replace(/b/g, ‘l’) === ‘lol’ // 替换所有匹配的字符串

使用Json格式来存储数据:

  1. 比较的时候要注意
var band = {

 "name":"The Red Hot Chili Peppers",

 "members":[

  {

   "name":"Anthony Kiedis",

   "role":"lead vocals"

  },

  {

   "name":"Michael 'Flea' Balzary",

   "role":"bass guitar, trumpet, backing vocals"

  },

  {

   "name":"Chad Smith",

   "role":"drums,percussion"

  },

  {

   "name":"John Frusciante",

   "role":"Lead Guitar"

  }

 ],

 "year":"2009"

}

// These are ok

也可以使用JS来存储数据,代码如下:

‘abc’ === ‘abc’// true

<div id = “dataDiv”></div>

<script>

    Function saveData(data)

{

    Var out =“<ul>”;

    For(var i=0; i<data.length; i++)

{

    Out += “<li><a href =”'+data[i].url+'”>+

data[i].d+</a></li>”;

}

Out += ‘</ul>';

Document.getElementById(‘dataDiv').innerHTML = out;

}

</script>

1 === 1// true

甚至可以将上面JS生成的存储数据的作为API的返回值

// These are not

<script
src=”;

[1,2,3] === [1,2,3]// false

</script>

{a: 1} === {a: 1}// false

三、尽量使用JavaScript原生函数

{} === {}// false

例如:获取一组数据中的最大值

原因:[1,2,3]和[1,2,3]是两个独立的数组。它们只是恰好包含相同的值。它们具有不同的引用,无法用===相比较。

var maxData = Math.max(0,20,50,10);

  1. 数组不是原始数据类型

alert(maxData);   //返回的最大值为50

typeof{} === ‘object’// true

例如:使用JS给一个元素添加class样式,代码片段如下:

typeof’a’ === ‘string’// true

Function addClass(elm, newclass)

{

    Var classes = elm.className.split(‘ ‘ );

    Classes.push(newclass);

    Elm.className = classes.join(‘ ');

}

typeof1 === number// true

四、事件委托

// But….

例如:

typeof[] === ‘object’// true

<h2>Great Web resources</h2>

<ul id="resources">

 <li><a href="http://opera.com/wsc">Opera Web Standards

Curriculum</a></li>

 <li><a href="http://sitepoint.com">Sitepoint</a></li>

 <li><a href="http://alistapart.com">A List Apart</a></li>

 <li><a href="http://yuiblog.com">YUI Blog</a></li>

 <li><a href="http://blameitonthevoices.com">Blame it on the

voices</a></li>

 <li><a href="http://oddlyspecific.com">Oddly specific</a></li>

</ul>

如果你想知道你的变量是不是数组,你仍然可以用Array.isArray(myVar)

最佳脚本书写方式:

  1. 闭包
(function(){

 var resources = document.getElementById('resources');

 resources.addEventListener('click',handler,false);

 function handler(e){

  var x = e.target; // get the link tha

  if(x.nodeName.toLowerCase() === 'a'){

   alert('Event delegation:' + x);

   e.preventDefault();

  }

 };

})();

这是一个很有名的面试题:

五、匿名函数

constGreeters = []

var myApplication = function(){

 var name = 'Chris';

 var age = '34';

 var status = 'single';

 function createMember(){

  // [...]

 }

 function getMemberDetails(){

  // [...]

 }

 return{

  create:createMember, get:getMemberDetails

 }

}();

//myApplication.get() and myApplication.create() now work.

for(vari = 0;i < 10;i++){

六、代码可配置

Greeters.push(function(){

你写的代码如果想让别人更容易进行使用或者修改,则需要可配置,解决方案是在你写的脚本中增加一个配置对象。要点如下:

returnconsole.log(i)

1、在你的脚本中新增一个叫configuration的对象。

})

2、在配置对象中存放所有其它人可能想要去改变的东西,例如CSS的ID、class名称、语言等等。

}

3、返回这个对象,作为公共属性以便其它人可以进行重写。

Greeters[0]()// 10

七、代码兼容性

Greeters[1]()// 10

兼容性是初学者容易忽略的部分,通常学习Javascript的时候都是在某个固定的浏览器中进行测试,而这个浏览器很有可能就是IE,这是非常致命的,因为目前几大主流浏览器中偏偏IE对标准的支持是最差的。最终用户看到的结果也许就是,你写的代码在某个浏览器无法正确运行。你应该把你的代码在主流的浏览器中都测试一下,这也许很费时间,但是应该这样做。

Greeters[2]()// 10

以上这篇学JavaScript七大注意事项【必看】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

你是不是认为它会输出 0, 1, 2… ? 你知道它为什么不是这样输出的吗?
你会怎样修改让它输出 0, 1, 2… ?

这里有两种可能的解决方法:

用 let 替代 var. Boom. 解决了.

let和var的不同在于作用域。var的作用域是最近的函数块,let的作用域是最近的封闭块,封闭块可以小于函数块(如果不在任何块中,则let和var都是全局的)。

替代方法: 用 bind:

Greeters.push(console.log.bind(null, i))

还有很多其他方法。这只是我的两个首选

  1. 谈到 bind

你认为这个会输出什么?

classFoo{

constructor(name){

this.name = name

}

greet(){

console.log(‘hello, this is ‘,this.name)

}

someThingAsync(){

returnPromise.resolve()

}

asyncGreet(){

this.someThingAsync()

.then(this.greet)

}

}

newFoo(‘dog’).asyncGreet()

如果你认为这个程序会崩溃提示 Cannot read property ‘name’ of
undefined,给你一分。

原因: greet
没有在正确的上下文中运行。同样,这个问题依然有很多解决方案。

我个人喜欢

asyncGreet(){

this.someThingAsync()

.then(this.greet.bind(this))

}

这样可以确保类的实例作为上下文调用greet。

如果你认为greet 不应该在实例上下文之外运行,
你可以在类的constructor中绑定它:

classFoo{

constructor(name){

this.name = name

this.greet = this.greet.bind(this)

}

}

你还应该知道箭头函数( => )可以用来保留上下文。这个方法也可以:

asyncGreet(){

this.someThingAsync()

.then(() = > {

this.greet()

})

}

尽管我认为最后一种方法并不优雅。

图片 5

我很高兴我们解决了这个问题。

总结

祝贺你,你现在可以放心地把你的程序放在互联网上了。甚至运行起来可能都不会出岔子(但是通常会)Cheers
o/

如果还有什么我应该提到的,请告诉我!

如果有对前端感兴趣前端程序员,可以加入我们的web前端技术学习群哦640633433。里面免费送前端的零基础教程噢!

写在最后:

很多人都知道我是学全栈的,都天真的以为我有全套的前端、网页制作等视频学习资料。我想说你们是对的,我的确有前端的全套视频资料。

相关文章