关于JS高程的笔记(一到三章)

第一章:JavaScript简介

JavaScript是一种专为与网页交互而设计的脚本语言。由ECMAScript , 文档对象模型(DOM)和浏览器对象模型(BOM)三部分组成.

第二章:在HTML中使用JavaScript

内敛:

<script type="text/javascript">
  function sayHello(){
    alert("hello");
  }
</script>
外部:只会引用外部js代码
<script type="text/javascript" src="hihi.js"></script>
添加defer="defer"相当于告诉浏览器立即下载但延迟执行。延迟脚本

把脚本放在body最下边是最佳选择。

<srcipt>元素的async属性,只适用于外部文件。不让页面等待外部文件加载,异步加载页面的其他东西。异步脚本

可扩展超文本标记语言XHTML

文档模式doctype:混杂模式,标准模式。

若文档开始处没有文档类型声明则开始混杂模式<DOCTYPE! HTML>

第三章:基本概念

严格模式:

ECMAScript5引入的。启用严格模式在顶部添加代码"use strict"; 支持严格模式的有IE10+,Firefox5.1+,Opera12+,Chrome。

数据类型:

1.typeof操作符 返回"undefined"值未定义;返回"boolean"布尔值;返回"string"字符串;返回"number"数值;返回"object"为对象或 null(空指针);返回"function"值为函数。
2.undefined:只声明变量未赋值。
3.Null:只有一个值的数据类型,null空对象指针。undefined是派生自null值的,因此==判断时返回true。
4.Boolean:任何非空字符串=》true。
5.Number:八进制0(无效八进制解析为十进制),十六进制0x。
浮点数值:eg 0.1+0.2=0.30000000000000004 because并不是所有的十进制小数都能被二进制表示(在可取范围内)
JS不能处理所有的小数,其他使用相同数值格式的语言也存在这个问题
数值范围:超出js范围的值被保存为Infinity,判断数值是否有穷使用isFinite()函数。正数/0返回Infinity,负数返回-Infinity。
NAN:非数值,不影响代码执行,与任何值都不相等包括自己本身。isNAN()函数判断。0/0返回NAN
6.数值转换: 点击打开链接
7.String类型:
字符字面量:eg ‘he said \'hey\'’
转换为字符串:toString()方法,null和undefined没有。String(),null返回“null” undefined返回“undefined”
8.Object类型:
constructor构造函数
hasOwnProperty(propertyName):用于检测给定的属性在当前对象实例中是否存在。
isPrototypeOf(object):传入对象是否传入对象原型
propertyIsEnumerable(propertyName)用于检测属性是否能用for-in语句
toLocaleString()返回对象字符串表示,与执行环境相对应
toString()
valueOf()返回字符串,数值或布尔值表示。

操作符:

一元操作符:递增递减,正负号。
位操作符:按位取非(~)按位与(&)按位或(|)按位异或(^)左移(<<)不会影响符号位,有符号右移(>>)无符号右移(>>>)
布尔操作符:逻辑非(!)同时使用两个逻辑非会模拟Boolean()转型函数,逻辑与(&&)短路逻辑,逻辑或(||)短路逻辑
乘性操作符:Infinity除Infinity结果是NAN,有一个操作数是NAN结果是NAN
关系操作符:注意字符串比较“23”<“3”
相等操作符:全等(===)两个操作数未经转换前就相等。不全等(!==)未经转换前就不相等
条件操作符:variable = boolean_expression ? true_value : false_value;
赋值操作符:乘/赋值(*=)除/赋值(/=)模/赋值(%=)左移/赋值(<<=)有符号右移/赋值(>>=)无符号右移/赋值(>>>=)
逗号操作符:用于声明多个变量; 用于赋值(总是会返回表达式最后一项)

语句:

for-in:用来枚举对象属性
label语句:在代码中添加标签
break和contiune语句:
var num=0;
outermost://标签
for(var i=0;i<10;i++){
  for(var j=0;j<10;j++){
    if(i==5&&j==5){
      break outermost;//到outermost全部结束循环(直接结束两层循环)
    }
     num++;
  }
}
alert(num;)//55

contiune表示从标签处继续。
with语句:严格模式下禁用。开发大型应用程序不建议使用。
switch语句:
switch (expression){
  case value: statement;break;
  case value: statement;break;
  case value: statement;break;
  case value: statement;break;

函数

function(参数){
.......
return  ;//函数执行return后停止并立即退出
}
注意:不能把函数或参数命名为eval或arguments,参数不能同名。
arguments对象:函数体内部可以访问参数数组。arguments的值永远与对应的命名参数的值一样。修改arguments[0]也修改了第一个参数但内存空间是独立的(值同步,严格模式下不成立)。
通过arguments.length可以访问参数长度。
没有重载:定义两个名字相同的函数,名字只属于后定义函数。
通过检查传入函数中参数的类型和数量可以模拟重载,(提高程序适应性,便与函数在变化的环境中使用,提高代码复用性)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值