Js
1.javascript和Java的关系
1)雷锋和雷峰塔的关系(无关系);
2)Java年龄比JavaScript大;
2.基础知识
1)是一门语言,脚本语言,弱类型(数据类型自动转换),解释性语言(和php一样直接可以运行 不需要编译),是一种基于对象的语言(php为面向对象的语言)
2)ECMA 欧洲计算机组织:ECMA标准 ECMA262版本
3)ECMA262标准--->ECMAscript(该标准只定义语法 不定义输入和输出)
3.学习流程
1)基本语法
2)BOM的操作(浏览器对象模型)
3)DOM的操作(文档对象模型)
4)Ajax无刷新操作
5)jQuery 一个JS框架
4.作用
1)页面效果美化
2)表单数据验证
3)特效制作(瀑布流)
5.优点
1)弱类型语言-数据转换方便
2)跨平台的语言
3)比较安全的语言(不能执行系统文件)
6.缺点
1)操作的局限性,只能操作宿主内容
2)兼容性(每个浏览器对JavaScript的实现都是不一样的IE/6/7/8/9/10/11/Firebox/chrome/opera)
7.学习
1)使用标签<script></script> 必须成对出现 否则可能导致页面错误
2)标签可以出现在任何位置
3)<noscript></noscript>在不能使用js的情况下会显示此标签中内容
4)Type属性 用于声明脚本的MIME类型
5)Src属性 用于引入外部的js文件(js文件没有固定后缀,常用js)
6)Charset属性 用于设定外部引入的js文件的字符集(基本不用)
7)Defer属性 延迟脚本属性 将外部脚本的执行时间延迟到页面其他代码执行之后(改变执行顺序)
8)Async属性 异步脚本属性 改变文件的下载属性,可以提升文件的下载优先级(改变下载顺序)
8.异步脚本---使用async属性的脚本就是异步脚本.该脚本会改变文件的下载优先级,无需等待其他文件下载 完毕即可下载.(异步脚本只改变下载顺序,不改变执行顺序.)
9.延迟脚本---使用defer属性的脚本就是延迟脚本.会使得当前脚本在页面其他内容加载完毕之后才去运 行.(延迟脚本只改变执行顺序,不改变下载顺序.)
10.标签的位置
1)head中 body内外
2)将所有脚本都存放在head头中
A)维护方便
B)保证先加载完js文件再执行html代码
C)如果有大量的js代码 可能导致页面js加载时间长 影响页面显示
3)将所有脚本都存放在body中
A)文件下载比较分散,不会出现长时间等待,用户体验较好.
B)可以方便的在某些元素出现之后再调用对该元素进行操作的脚本.
C)缺点:不方便维护.
4)推荐-----在head和body都存放js脚本
A)将部分JS代码放在head头中(必须提前准备好的JS,例如jquery)
B)将部分需要在元素之后操作的JS放在body体中.方便操作
11.<noscript> 标签
当浏览器不支持JS操作的时候,会显示该标签的内容用于提示用户. 这类标签统一称为后备内容标签.
JS的语法规则
1.变量相关内容
a) Js中变量的声明规范适合所有JS其他内容的声明.
b) 1.JS中的变量时严格区分大小写的!!!~
c) 2.只能使用英文,不能使用中文
d) 3.可以使用数字,但不能用数字开头
e) 4.不可以使用特殊字符,除了_和$
f) 5.变量的命名要有意义。
g) 6.声明JS变量必须使用var关键字
h) 7.命名时尽量使用驼峰命名法.
2.js的注释
单行注释 //JS的单行注释
多行注释
/*
Js的多行注释~
*/
3.JS的命令执行符号
一种是分号(真实的)
一种是回车(特定情况下补充分号的一种命令执行符)
强烈推荐写分号,如果不写分号,程序会自动在回车的位置进行判断是否该结束命令,如果是会隐式的增加分号作为结束符。
4.保留字和关键字:
为了防止JS中的命名和保留关键字冲突,所有必须了解所有的保留字和关键字
为了防止和保留关键字冲突,可以使用如下方法
1.使用大写来区分保留关键字
2.使用特殊字符区分 加$或者_,增加其他字符也可以
JS的数据类型:
JS的数据类型分类:
1.可以分为1种数据类型
2.可以分为2种数据类型
3.可以分为6种数据类型
4.可以分为N种数据类型
一种数据类型:
如果JS数据类型只有一种,那么这种类型就是对象类型
JS是基于对象的语言,所有的数据类型都是对象,即使不是对象在运算过程中也都会变为对象.
两种数据类型
基本数据类型和引用数据类型
六种数据类型
使用typeof 运算符检测类型的结果只有6个
Undefined类型
Boolean类型
Number类型
String类型
Function 类型
Object类型
N种数据类型:
Undefined类型
具有一个唯一的值:undefined
能够得到undefined值的方法:
1.直接赋值变量为undefined值
2.声明变量但不赋值。
Boolean类型
布尔类型只有2个值: true和false
注意:JS中布尔值必须都小写。
Number类型:
Number有三种值:整型,浮点型和NaN类型
整型:
var val=250;//十进制声明
var val=0777;//八进制声明
var val=0XFF;//16进制声明
浮点型:
var val=3.3;//小数方式
var val=3.14E10;//科学计数法
var val=3.;//小数方式 简写方式
var val=.3;//小数方式 简写方式
NaN类型
NaN 表示 Not a Number
具有唯一的值:NaN
作用:为了防止程序的报错,添加的容错类型,看到了NaN一般表示程序运算出错~
获取NaN的方式:
1.直接赋值NaN
2.错误运算可能导致NaN
3.任意数值和NaN进行任意运算结果都是NaN
NaN类型的特点:
1.NaN不等于任何值,包括NaN本身,不能用于判断
2.任意数值和NaN进行任意运算结果都是NaN
3.isNaN() 函数是专门用于检测值是否是NaN的唯一方法
String类型
字符串的声明方式:
单引号声明和双引号声明方式
特征:
单双引号都可以解析转义字符
单双引号都不能解释变量.
单双引号的效果在JS中完全一致,没有效率问题,推荐使用单引号。因为HTML使用双引号,而JS中经常需要处理HTML字符串的内容.
Function 类型:
JS中的函数分为2种: 声明函数/表达式函数(匿名函数)
//声明函数
function val(){
alert('这是一个函数');
}
//匿名函数 表达式函数
var val=function(){
alert('这是一个函数');
}
Object类型
什么是对象?对象就是数据和功能的集合.
如何获取一个对象?
必须记住:JS中没有类的概念。
JS的对象是通过实例化一个构造方法得到的对象~!
Var 变量=new Object() //实例化一个空白对象