前端学习笔记

1.

外部引用脚本切不能包含

2.

JavaScript 对大小写敏感。但对空格不敏感

3.关于代码中拆行

您可以在文本字符串中使用反斜杠对代码行进行换行
下面例子正确:

document.write("Hello \
 World!");

下面例子错误:

document.write \
("Hello World!");

4.

如果重新声明 JavaScript 变量,该变量的值不会丢失;

5.

如果需要在定义时规定类型,可以使用关键词 “new” 来声明其类型:

var carname=new String; 
var x= new Number; 
var y= new Boolean; 
var cars= new Array;
 var person= new Object;

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象

6.JavaScript 变量的生存期

JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

注:
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。

这条语句:

carname="Volvo";

将声明一个全局变量 carname,即使它在函数内执行。

7.关于加号:

如果把数字与字符串相加,结果将成为字符串,都当做字符串。

8.易错点:

continue 语句(带有或不带标签引用)只能用在循环中。

break 语句(不带标签引用),只能用在循环或 switch 中。

9.js中的true和false

如果逻辑对象无初始值或者其值为 0、-0、null、”“、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 “false” 时)!

10.关于乱码的问题

不同浏览器出现乱码问题:

我试着写第一个html文件时候,发现打开保存的html文件后,中文显示的是乱码的。我知道这是字符编码的原因,所以百度了html 乱码 办法,发现要在开头统一规范下编码格式,有三种编码规定

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

编码格式为GB2312

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

编码格式为UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

编码格式为UTF-8
参考网址:http://www.dabu.info/html-display-chinese-garbled-solution.html

11.关于颜色

除了英文单词 red,我们还可以使用十六进制的颜色值 #ff0000:

p { color: #ff0000; }

为了节约字节,我们可以使用 CSS 的缩写形式:

p { color: #f00; }

我们还可以通过两种方法使用 RGB 值:

p { color: rgb(255,0,0); }
p { color: rgb(100%,0%,0%); }

请注意,当使用 RGB 百分比时,即使当值为 0 时也要写百分比符号。但是在其他的情况下就不需要这么做了。比如说,当尺寸为 0 像素时,0 之后不需要使用 px 单位,因为 0 就是 0,无论单位是什么。

13.关于禁止的类名命名规则

注意:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。

14.关于属性选择器的有效范围:

注释:只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持属性选择器。在 IE6 及更低的版本中,不支持属性选择。

15.

不要在属性值与单位之间留有空格。假如你使用 “margin-left: 20 px” 而不是 “margin-left: 20px” ,它仅在 IE 6 中有效,但是在 Mozilla/Firefox 或 Netscape 中却无法正常工作。

16.

当为链接的不同状态设置样式时,请按照以下次序规则:

  • a:hover 必须位于 a:link 和 a:visited 之后
  • a:active 必须位于 a:hover 之后

17.定义单边样式

  • border-top-style
  • border-right-style
  • border-bottom-style
  • border-left-style

因此这两种方法是等价的:

p {border-style: solid solid solid none;}
p {border-style: solid; border-left-style: none;}

注意:如果要使用第二种方法,必须把单边属性放在简写属性之后。因为如果把单边属性放在 border-style 之前,简写属性的值就会覆盖单边值 none。

18.关于css设置border-width没有效果的原因:

注释:”border-width” 属性如果单独使用的话是不会起作用的。请首先使用 “border-style” 属性来设置边框。
由于 border-style 的默认值是 none,如果没有声明样式,就相当于 border-style: none。因此,如果您希望边框出现,就必须声明一个边框样式。

19.

如果颜色值小于 4 个,值复制就会起作用。例如下面的规则声明了段落的上下边框是蓝色,左右边框是红色:

p {
  border-style: solid;
  border-color: blue red;
  }

20.关于数组的长度是否会变化

虽然创建数组时,指定了长度,但实际上数组都是变长的,也就是说即使指定了长度为8,仍然可以将元素存储在规定长度以外。

21.易错点:

nodeObject.removeChild(node)

把删除的子节点赋值给 x,这个子节点不在DOM树中,但是还存在内存中,可通过 x 操作。

22.判断一个值是否是数字

请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。

23.

$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。

如扩展 .fn.abc(), .fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了.
那么你可以这样子:$(“#div”).abc();

24.关于形参和实参个数不对应的情况:

<script type="text/javascript">                function one(a,b,c)  
{ 
    this.x = a; 
    console.log(a); 
} 
one(1);
 </script>

我们传递的数字只有一个1,但是形参那里有abc三个。这分明对不上啊不是吗?

这个时候如果我们查看b,c的话会显示undefined。ps:比如console.log(b)。

当然啦,本来就没有这两个数。怎么找给你?

那面对这种实参和形参对不上号的情况,JS是怎么实现的呢?让我们来看一段代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>JavaScript中函数的形参和实参的区别</title>
</head>
<body>
    <script type="text/javascript">
    function one(a,b,c) {
        return one.length;
    }
    function two(a,b,c,d,e,f,g){
        return arguments.length;
    }
    console.log(one()); //3
    console.log(two()); //0
    </script>
</body>
</html>

这里我们在one函数里面返回了one.length,在two函数里面返回arguments.length。可能你已经发现了,输出的one()返回了one.length就是形参的数量,而argument.length就是实参的数量。

瞬间秒懂了有木有?

甚至我们可以用arguments[0]取到实参的数字。

但是为什么没有形参的数字可以用类似数组的方式这样表示呢?好吧,我知道你是处女座的凡事要求对称。除非你形参是数组你可以这样用。不然在函数里面我们就只能用形参的名字来取得实际的参数了。

在C#,Java里面对参数类型和个数相对JS来说要求十分严格,一点对不上就报错了。而JS就因为有这样的设计而可以变成相对灵活的语言。

上述方法就是JS依赖的不强制对形参和实参规定个数相等的实现了。至于类型的相同,JS什么类型都可以写成var a = ……,要类型何用?所以才说JS是一种弱类型的语言嘛!

25.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值