HTML:搭建网站的结构 /骨骼
CSS:层叠样式表,美化界面/对于骨骼的装饰(肉体)
JavaScript(JS):使网站具备动态的特效功能/灵魂 应用场景:大型网站的表单验证
js是基于对象和事件驱动的客户端脚本语言
对象: 万事万物都是对象
对象三大特征(属性,方法,事件)
属性:是指一个事物的外观特征
方法:是指一个事物的主动行为
时间:是指一个事物的被动行为
客户端脚本语言:
弱类型的脚本语言:js php Python shell
弱类型是指根据值来确定变量的数据类型
脚本语言(解释型语言):时间快 翻译一行直接执行一行
强类型语言(编译型语言):Java c c++ c#
JS的学习路线:三大模块
(1) ECMAScript5.0
(2) BOM 浏览器对象模型;
(3) DOM 文档对象模型;
JS嵌入页面的三种方式:
①行间嵌入==>使用事件驱动
Eg:
②内嵌:在head中或者body中通过script标签 嵌入 JS代码
Eg:
变量的概念:变量是指计算机内存中存储数据的标识符/是指在一段程序中一直变化的量
作用:主要用来存储数据
JS是一个弱类型的脚本语言 var 变量的名称=变量值
变量的声明:使用var关键字
var 变量名称
变量的初始化 就是指变量赋值(初始值)
a.var 变量名称=变量值
b.var 变量名称; 变量名称=变量值
变量的访问(通过变量名称访问就可以直接访问 变量的数据)
var 变量名称=变量值;
console.log(变量名称)
变量命名规则:
a.驼峰命名法 myName $myName
b.在变量的命名中不能以数字开头,但可以包含数字 myName01 01myName(错误)
c.不能使用js中的关键字(保留字)
d.变量可以以字母 _ $ 开头
e.变量的长度不超出255个字符
f.可以用中文命名 但不推荐 解析速度慢
g.区分大小写 name Name 表示不同变量
变量的数据类型:(两大类)
a.简单的数据类型
①number 数字类型
②string 字符串类型
③boolean 布尔类型
④undefined 空类型/未定义的类型 定义一个变量,但是未进行赋值
⑤null 空类型 null类型只有一个值,是null,表示不存在的对象,
一般常常用于函数return一个不存在的对象,也可用于声明一个空的对象,利于保存。
null是javascript的关键字,一个空对象指针,代表空值。
b.复合数据类型/复杂的数据类型/特殊的数据类型
①object 对象类型
②function 函数类型
通过typeof查看变量数据类型
js放在head与body中的区别?
放入html的head,是页面加载前就运行,放入body中,则加载后才运行javascript的代码
编译型语言和解释性语言区别?
(1)编译型语言:把源程序全部编译成二进制代码组成的可运行的程序,即在编译之后可以直接执行;速度快 效率高,但是跨平台性差。
(2)源程序翻译一句,执行一句。速度慢,效率低,但是跨平台性能好。
JS中new关键字用法?
(1)创建一个新对象;
(2)将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ;
(3)执行构造函数中的代码(为这个新对象添加属性) ;
(4)返回新对象。
Eg:function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person("Alice", 23);
JS中栈和堆?
栈(stack):栈会自动分配内存空间,会自动释放,存放基本类型,简单的数据段,占据固定大小的空间。
基本类型:String,Number,Boolean,Null,Undefined
堆(heap):动态分配的内存,大小不定也不会自动释放,存放引用类型,指那些可能由多个值构成的对象
保存在堆内存中,包含引用类型的变量,实际上保存的不是变量本身,而是指向该对象的指针。
引用类型:Function,Array,Object
栈:所有在方法中定义的变量都是放在栈内存中,随着方法的执行结束,这个方法的内存栈也自然销毁。
优点:存取速度比堆快,仅次于直接位于CPU中的寄存器,数据可以共享;
缺点:存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
堆:堆内存中的对象不会随方法的结束而销毁,即使方法结束后,
这个对象还可能被另一个引用变量所引用(参数传递)。
创建对象是为了反复利用,这个对象将被保存到运行时数据区。