一、什么是js
javascript,一门脚本语言,具有一定逻辑性,与网页进行交互的
二、js的组成部分
1). DOM document object model 文档对象模型,用于操作页面上的元素
2). BOM Browser Object Model 浏览器对象模型 操作浏览器的前进,后退,刷新页面的跳转 历史记录
3). ES ECMAScript 定于语法规范,保留字,关键字..
ES3, ES5,ES6,7,8,9,10,11..
三、js的数据类型
1). number 包含整型,浮点类型
var age=20; console.log(age) //number 数值类型
2). 字符串 由一组双引号或单引号组成
var str="你好"; console.log(str) // string var str1='大家好!' console.log(str1) //string
3).bool 布尔类型 它的值只有2个 true
和false
var flag=true; console.log(typeof flag) //true
4).null 表示内存中空地址
var obj=null; console.log(typeof obj) // object 历史遗留问题
5).undefined 未定义 js特有类型
var myname; // 它的默认值是undefined myname="刘德华"; //用刘德华 覆盖 undefined
6).object 引用类型 (Object,Function,Date)
四、js属于弱类型语言
弱类型语言,类型可以随时随意被修改,甚至初始化变量也可以不赋予初始值
var age; //undefined age=20 // number age="二十" // string
五、JS的命名规范
1.只能是数字,字母,下划线,$
var myname="刘德华"; var myname1="蔡徐坤"; var myname_="周杰伦"; var $="吴彦祖";
2.不能是数字开头
var 1myname="刘德华";//错误
3.不能是关键字或保留字
var var = "你好"; //var 是关键字,不能当做变量名称
4.严格区分大小写
var myName="刘德华"; var MyName="蔡徐坤";
5.驼峰命名法
// 大驼峰 类型,构造函数 var Person=function(){} var p=new Person() // 小驼峰 变量,形参 var age=20; var myName="蔡徐坤";
6.语义化
var uname="刘德华"; var age=20;
可参考下图
六、保留字和关键字
关键字
Break 打破 | Else 其他的 | New 新的 | var 变量 |
Case 案例 | Finally 最后 | Return 返回 | void 空的 |
Catch 抓住 | For 对于 | Switch 转换 | while 虽然 |
Continue 持续 | Function 作用 | This 这个 | with 具有 |
Default 默认的 | If 如果 | Throw 投 | |
Delete 删除 | In 在里面 | Try 尝试 | |
Do 做 | Instanceof 的实例 | Typeof 类型 |
保留字
Abstract 摘要 | Enum 枚举 | Int 整型 | short 短型 |
Boolean 布尔型 | Export 出口 | Interface 接口 | static 静止的 |
Byte 字节 | Extends 延伸 | Long 长字符型 | super 超级的 |
Char 字符类型 | Final 最后 | Native 出生地的 | synchronized 同步的 |
Class 类 | Float 浮点型 | Package 包 | throws 投掷 |
Const 常量 | Goto 转到 | Private 私有的 | transient 转瞬即逝的 |
Debugger 调试器 | Implements 机具 | Protected 受保护的 | volatile 不稳定的 |
Double 双倍的 | Import 进口 | Public 公共的 |
七、typeof 操作符
var str="你好"; typeof str; //string var age=20; typeof age // number var flag=true; typeof flag // boolean var o=null; typeof o //object var name; typeof name // undefined var person={}; //对象 typeof person // object var arr =new Array(11,22,33) //数组 typeof arr // object
注意: typeof
只能检测基本数据类型,不能检测引用类型的具体类型
基本类型: string,number,boolean,null,undefined
引用类型: Object,Array,Function,Date ...
八、类型转换
其他类型转至bool类型的规则(牢记)
1). 非空字符串,为true
2).数值,非0为true,0和NaN位false
3).null和undefined 始终默认为false
4).对象不为null,则为true
NaN:not a number ,它是一个特殊的值,自己也不等于自己
在js计算失误的时候,就会出现NaN,能够让程序正常运行
var a=NaN typeof NaN // number var a=10; var b='你好!'; var c=a*b; console.log(c) //NaN
九、强制转换与隐式转换
1).强制转换
Boolean() String() Number() parseInt() parseFloat()
拓展:
//parseInt(a,n) a表示一个任意的进制数,n表示a这个数是什么进制 将任意一个进制的数转成十进制 //toString(n) n表示把一个数转换成n进制 将一个十进制的数转成任意进制的数 console.log(parseInt(1100,2).toString(8)); console.log(parseInt(1100,2));
2).隐式转换
除了+ 意外的运算符 - , * ,/,%, == var a='10'; a-0 //number 10 a/1 //number 10 a*1 //number 10 // 10 == '10' true 右边的 '10'--->隐式转换变成 10 , 10===10 true
十、运算符
1). 算数运算符
+ , - ,* ,/ ,%
2). 拼接运算符
// + 号 左右2遍,只要有1遍出现字符,就会是拼接 // 如果2遍都是数值 相加 console.log(10+20); // 30 console.log(10+'20'); //'1020' console.log('10'+20); //'1020' console.log('10'+'20'); //'1020'
3). 逻辑运算符
&& || !
4). 关系运算符
> ,>=,<,<=, ==, ===, != ,!==
ASCII码 一共128,再这个基础加入各国的字符串,又重新命名 gb2312,utf-8...
牢记:
A-Z 65-90
a-z 97-122
0-9 48-57
5). 三目运算符
语法: // ? : var result=false?'是真的':'是假的'; console.log(resut) // 是假的 var res= 1==1 ?'相等':'不相等'; console.log(res);// 相等
6). 一元运算符
a++,++a a--,--a a++ ,先取值,后运算 ++a, 先运算,后赋值
7). 赋值运算符
var a=10; a+=5; // a=a+5; console.log(a); //15 a-=5; // a=a-5; console.log(a); //5 var a=10; a*=2; //a=a*2; var a=10; a/=2 // a=a/2 var a=10; a%=2 // a=a%2
8).位移运算符
位移运算符, 把第一个数值转至2进制,向左边移动n位(第2个数决定),再有转至10进制
2>>2 把第1个2转换成2进制,向右边位移2位的值再有转换10进制 0 2<<2 把第1个2转转换成2进制,向左边移动2位,再转回10进制 8 >> 右位移 << 左位移
十一、JS代码规范
1, 保持代码缩进
2, 变量名遵守命名规范, 尽量见名思意
3,JS语句的末尾尽量写上分号;
4, 运算符两边都留一个空格, 如:varn=1+2