第一节 初始JS
什么是javascript?
javascript是一种具有面向对象能力的、解释型的程序设计语言。
是基于对象和事件驱动并具有相对安全性的客户端脚本语言
Javascript与ECMAScript的关系?
Javascript和ECMAScript通常用来表达相同的意思;
ECMAScript是Javascript的标准(核心),定义了变量,语句,数据类型,操作类型,操作语句,内置对象等核心内容;
Javascript是ECMAScript一种实现,除了包含ECMAScript以外还包括操作浏览器和文档的内容。
变量的命名规则?
①由数字、字母、下划线、$组成
②不能以数字开头
③不能使用关键字和保留字
关键字:js语言中被占用表示一些特殊含义的单词
保留字:以后可能成为关键字的词
④尽量使用英文单词,见名知意
⑤驼峰命名法
⑥适当简写
window.onload的作用?
由于文档是从上到下顺序运行,如果js直接放在head中,就会优先运行,这时候页面标签还没有加载出来,那么获取元素的结果都是null,后面的功能也实现不了。
为解决此问题,想要加载页面的标签和资源,再运行js,需要添加文档就绪事件。
window.onload为了先加载页面标签和资源在执行js
第二节 JS数据类型
js数据类型?
基本数据类型:Number、String、Boolean、Undefined、Null
引用数据类型:object、array、function
null和undefined的区别?
null 表示空对象,比如访问一个不存在的对象
undefined 未定义,变量声明未赋值
运算符的种类?
算术、赋值、比较、逻辑、三目
var a = 10;var b = a++;a、b最后的结果是?
a=11;b=10;
"=="与“===”的区别?
‘’==”等于,两个值的数据类型不同,会进行隐式数据转换,然后在比较
“===”全等(绝对比较),值和数据类型都必须相同,才为true
console.log(0.1+0.2 == 0.3)
false,小数之间运算会出现精度丢失,运算出来的结果不准确,应当避免小数之间的运算
NAN会在什么样的情况下才出现呢?列举出现这种情况的代码。
not a number
Number('12px') --NAN
parseInt('a12') -- NAN
parseFloat('a12') --NAN
10 - 'aa' ---NAN
列举三种强制类型转换和2种隐式类型转换。
强制类型转换:Number()、String()、Boolean()
隐式类型转换:
10+‘20’ ---'1020' | 10 == '10' |
isNaN(‘12’) | if(‘123’){} |
!1 |
第三节 流程控制语句
document.write()与innerHTML的区别?
document.write()在标签中写入内容,可以识别标签,放在事件里面执行会覆盖body里面已有的内容
第四节 自定义属性和索引值
this对象的理解?
以函数的形式调用:this是window
以方法的形式调用:this是调用方法的对象
以构造函数的形式调用:this就是新创建的那个对象