JS
巩固JS基础
1.推荐两个有助于学习JS的网址
http://www.codecombat.cn/ 通过代码做游戏
2.Javascript的简史
1995年的时候 由网景公司开发的,当时的名字叫livescript 为了推广自己的livescript,搭了java顺风车,改名为javascript
与此同时, 微软因此在自身的浏览器里,也推出了自己的脚本语言
jscript
1997年时候, 由ECMA(欧洲计算机制造商协会)出面,推出了一套javascript的规范,Ecmascript ,规范提出js由三部分组成
JS的组成:
ECMAScript 基础语法
DOM 文档对象模型
BOM 浏览器对象模型
2003之前,网页界面上的弹窗广告几乎都是由js做的,被人称做牛皮癣
2004年的时候,JS的命运发生改变 ajax(谷歌公司)
2007的时候 苹果公司推出的手机,可以用来上网
2010的时候 H5的出现 canvas 又推高了js的地位
2011年的时候, node.js 将js这种语言伸向后服务器端
3.JS输出的五句话
alert("浏览器弹出框");
console.log("控制台输出");
document.write("浏览器显示");
prompt("让用户输入信息");
comfirm("确认框");
4.变量命名规则
变量名必须以字母或下划线“_”或$开头
变量可以包含字母(从A至Z的大小字母),数字,下划线或是$
JavaScript严格区分大小写,computer和Computer是两个完全不同的变量
建议:
变量的名称要有意义
变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写
例如:userName userPwd hightSchool
禁止使用javascript的保留字和关键字作为变量名
5. +运算符
在变量和直接量(字符串)之间或两个字符串之间,用+起连接的作用
如果是两个数字之间用+的话,就是起加法运算中的加法运算
+两边如果有一边是字符串的时候,起连接的作用
如果两边都是数字的话,是数学中的加法运算
6.算术运算符
一元运算符:++ --
根据操作数来说,一元运算符,就是只需要一个操作数的运算符,二元,是需要两个操作数。
前加后加或是前减或是后减的区别:
后加加,参与运算的时候,先用自身的原值参与运算,之后再将自身的值加1,而前加加,是先将自身的值加1,而后拿着现在加1后的值,再参与运算。
减减同理。
二元运算符: + - * / %
7.转义符
\+一个特殊的字符,组成有一个有意义的或者其它功能的一个字符
\”
\t 制表符有四个字符的空格
\b backspace的缩写 往前删除一个
\n 换行
8.关系运算符
> < >= <= == != === !==
9.JS中的数据类型
string number boolean undefined null 基本数据类型
复杂数据类型 对象 Date Array function
Undefined是一种数据类型,只有一个值就是undefined,代表变量声明了,没有赋值的一种状态。
10.运算符的优先级
11. 数据的类型转换
转成number
隐式转换 + - * / %
强制转换 使用外部的方法或是函数进行的数据转换
Number() parseInt() parseFloat()
boolean类型的值转换成Number类型true-->1 false-->0
unerfined-----> NaN
如果能将值转换成数字,就转换成对应的值,如果不能转换,则报NaN.
Number()函数的特点:
a.如果转换的内容可以转成数字,那么就直接返回这个内容对应的数字。
b.将整体进行转换,如果有一个不可以转换那么返回NaN.
c.如果在内容中出现小数,那么小数会保留,也会输出小数。
d.如果内容为空(null),那么转换成0;
转成string
隐式类型转换 +“”
强制类型 toString() String();
万物皆对象,JS中的对象几乎都有toString(); null,undefined是没有toString()方法,如果要强制转换的话,只能使用String();
能用toString()转换的对象,对String()都可以
转成boolean布尔
隐式类型 !!
强制类型 Boolean()
数据类型转boolean的时候,为false的情况:
0, “”(空的字符串) ,null,undefined,NaN, 这些转成boolean类型的时候都为false,其它的都为true;
12.NaN number类型
NaN : not a number 不是一个数字
是数字类型的一种,代表数字的一种不正常的状态,也就是说,本来可以转换成数字或是参与运算的变量,并没有转换过来,这个时候就报一个NaN,这样就避免了程序报错。
NaN是非常特殊 的,特殊到凡是与NaN进行的运算,最终结果都是NaN,更特殊的是,NaN与谁都不相等,包括自己。
isNaN() 是 不是一个数字 非数字
13.if语句
If(判断条件){ 一般是一个boolean类型的值或是关系表达式或是逻辑表达式
要执行的代码;
}
执行过程:
当程序运行到if处的时候,首先进入小括号,判断括号里面的条件是否成立,如果成立,也就是括号里是true,则进入大括号执行里面的代码,如果条件不成立,也是返回false,则直接跳过大括号,执行后面的代码。
If只能判断 一种情况,如果想判断两种情况
If小括号中如果不是boolean类型的值,也不是关系表达式也不是逻辑表达式的时候,会隐式的调用Boolean(),将传进来的值,进行一个boolean类型的转换。
If..else
If(判断条件){ 一般是boolean类型的值或是关系表达式或是逻辑表达式
要执行的代码;
}else {
要执行的代码;
}
执行过程:
程序运行到if处,首先进入小括号,判断里面的条件是否成立,如果条件成立,也就是返回true,则进入大括号,执行里面的代码,如果判断条件不成立,也就是返回false,则进入else对应的大括号里面,执行里面的代码,执行完毕之后直接跳出if-else语句。两种情况肯定会执行其中一个大括号中的代码。