JavaScript——part1

1、文档对象模型(DOM)
dom把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点。这些节点又包括不同类型的数据。
2、JavaScript是一种专为与网页交互而设计的脚本语言,由三部分组成:ECMAScript,提供核心语言功能;文档对象模型(DOM),提供访问和操作网页内容的方法和接口;浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
3、在HTML页面插入JavaScript的主要方法就是使用<script>元素。在使用<script>时,不要在文件中间的任何地方出现</script>。不然会被解析成<script>结束的标签。通过转义字符“/”可以解决这个问题<\/script>
4、<script>标签的属性:
(1)async:可选。表示应该立即下载脚本,异步脚本。<script type="text/javascript" async src="example.js"></script>
(2)charset:可选。表示通过src属性指定的代码的字符集。
(3)defer:可选。表示脚本可以延迟到文档被完全解析和显示之后再执行。只对外部脚本文件有效。<script type="text/javascript" defer="defer" src="example.js"></script>
(4)src:可选。表示包含要执行代码的外部文件。
(5)type:可选。可以看做是language的替代属性;表示编写代码使用的脚本语言的内容类型。type=“text/javascript”
5、文档模式:混杂模式、标准模式。
混杂模式:向后兼容。
标准模式:让IE的行为更接近标准行为,IE6以上都支持标准模式。
如何判断文档模式:DOCTYPE为页面上的第一个元素进行声明,为标准模式。其他情况为混杂模式。
6、ES中的一切都区分大小写。
7、标识符,就是指变量、函数、属性的名字,或者函数的参数。
8、严格模式。在脚本中启用严格模式,添加代码“use strict”;。严格模式:(1)不允许使用未声明的变量。

<script>
"use strict";
x = 3.14;   
</script>

报错
在这里插入图片描述
(2)不允许删除变量或对象。

<script>
"use strict";
var x = 3.14;
delete x;    
</script>

报错
在这里插入图片描述
(3)不允许删除函数。

<script>
"use strict";
function x(p1, p2) {}; 
delete x;  
</script>

报错
在这里插入图片描述
(4)不允许变量重名。

<script>
"use strict";
function x(p1, p1) {}; 
</script>

在这里插入图片描述
(5)不允许使用转义字符“/”。
(6)不允许对只读属性赋值。
(7)变量名不能使用eval、arguments字符串。
(8)禁止this关键字指向全局对象,使用构造函数时要加new。
9、用var操作符定义的变量将成为定义该变量作用域中的局部变量。在函数退出后就会被销毁。省略var操作符,该变量就会成为全局变量。
10、数据类型:Undefined、Null、Boolean、Number、String、Object。ES不支持任何创建自定义类型的机制,但因为ES数据类型的动态性也不需要再创建其他数据类型了。
11、typeof操作符。检测变量的数据类型。对未初始化和未声明的变量执行typeof操作符都会返回undefined。

var message;
console.log(typeof message);
console.log(typeof age);

12、Undefined类型。undefined类型只有一个值undefined。

var message;
console.log(message==undefined);   //true

只声明了变量message,但没有进行初始化。
13、Null类型。Null类型只有一个值null。null的值表示一个空对象的指针,使用typeof操作符检测null时会返回object。

var message=null;
console.log(typeof message);    //"object"

14、Boolean类型。只有两个字面值 true 、false。这两个值与数字值不是一回事,所以true不一定等于1,false也不一定等于0。
15、parseInt()把字符串转换为值。console.log(parseInt("1234abc"));输出1234。
toString()把值转换为字符串。
16、String类型。字符串可以用" "/’ '表示。
任何字符串的长度都可以通过访问其length属性获得。但是转义字符会被解析为一个字符。
ES中字符串是不可变的,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

var lang="java";
lang = lang + "script";
console.log(lang);    //"javascript"

17、Object类型。
对象可以通过执行new操作符后跟要创建的对象类型名称来创建。
18、操作符。
(1)一元操作符。 + - ++ –
(2)位操作符。
①按位非 ~ 操作数的负值减1。

var age=26;
var age2=~age;
console.log(age2);   //-27

②按位与 & 二进制码上对应位同时为1位的个数。

var result=25&3;
console.log(result);   //1

③按位或 | 有一位为1时返回1,两位都是0才返回0。将返回的01恢复成数字。
④按位异或 ^ 都为1、0时返回0。其他情况返回1.
⑤左移 << 右移 >> 都是转化为二进制码进行移位。从0起。
⑥无符号左移 <<< 无符号右移 >>> 复数可能会变成正值。
(3)布尔操作符。
①逻辑非 !

console.log(!false)
console.log(!"blue")
console.log(!0)
console.log(!NaN)
console.log(!"")
console.log(!12345)
数据类型 true的值 false的值
Boolean true false
String 任何非空字符串 " "(空字符串)
Number 任何非0数字值 0和NaN
Object 任何对象 null
Undefined n/a(not applicable 不适用) undefined

②逻辑与 &&
对于布尔值:异值相与为F,同T为T,同F为F。
在有一个操作数不是布尔值的情况下,逻辑与操作将不一定返回布尔值。
□如果第一个操作数是对象,则返回第二个操作数。
□如果第二个操作数为对象,只有在第一个操作数的求值结果为true时才会返回第一个操作数。
□如果两个操作数都是对象,则返回第二个操作数。
□如果有一个操作数为null,则返回null。
□如果有一个操作数为NaN,则返回NaN。
□如果有一个操作数为undefined,则返回undefined。
③逻辑或 ||
对于布尔值:异值相或为T,同T为T,同F为F。
在有一个操作数不是布尔值的情况下,逻辑或操作将不一定返回布尔值。
□如果第一个操作数是对象,则返回第一个操作数。
□如果第一个操作数的求值结果为false,则返回第二个操作数。
□如果两个操作数都是对象,则返回第一个操作数。
□如果有一个操作数为null,则返回null。
□如果有一个操作数为NaN,则返回NaN。
□如果有一个操作数为undefined,则返回undefined。
(4)乘性操作符。× / %
(5)加性操作符。+ -
(6)关系操作符。< > <= >=
(7)相等操作符 == (比较值) ===(比较值和类型)
(8)条件操作符。 ? :
variable=boolean_expression?true_value:false_value;
基于对boolean_expressionde求值结果,如果为true返回什么值,false返回什么值。
(9)赋值操作符。+= -= *= /= %=
(10)逗号操作符。
逗号操作符剋在一条语句中执行多个操作。var num1=1,num2=2,num3=3;

var num=(1,2,3)
console.log(num)  //3

19、语句。
①if语句。

if(){}
else{}
//
if (){}
else if(){}
else{}

②do-while语句

var i=0;
do{
     i += 2;
     } while (i<10); 

③while

var i=0;
while(i<10){
     i+=2;
     }

④for语句。

var count = 10 ;
for ( var i = 0; i < count ; i++ ){
      console.log(i);
     }  

for语句中将三个表达式的值全部省略就会创建一个无限循环。而只给出控制表达式(中间的)实际上就把for循环转换成了while循环。
⑤for-in 语句。
for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。

for ( var propName in window ) {
      document.write(propName);
      }

⑥break 和 continue 语句。

发布了75 篇原创文章 · 获赞 0 · 访问量 3395

猜你喜欢

转载自blog.csdn.net/E_ISOLATE/article/details/100783011