JavaWeb - JavaScript

/**
 * JavaScript简介
 */
一种动态类型、弱类型、基于原型的语言
常用来为网页添加各式各样的动态功能
为用户提供更流畅美观的浏览效果
/**
 * 特点
 */
解释性脚本语言(代码不进行预编译)
主要用来向HTML页面添加交互行为
可以直接嵌入HTML页面 
跨平台特性,在浏览器的支持下,可以在多种平台下运行
/**
 * 演变历史
 */
1992年,Nombas公司开发出C--嵌入式脚本语言,后改名为ScriptEase,跟C++没有半毛钱关系,创新性地支持客户端执行
Netscape公司吸收了Nombas的开发理念,Brendan Eich设计研发liveScript,后与Sun公司合作更名为JavaScript
Windows公司不要脸的窃取JavaScript嵌入到IE,对外声称Jscript,页游方面称为ActionScript
ECMA组织提出ECMA-262规范,统一三家JavaScript,史称ECMAScript
/**
 * JavaScript的组成部分
 */
ECMAScript  核心
DOM         文档对象模型
BOM			浏览器对象模型
/**
 * Script结合方式一
 */
<script type="text/javascript">
</script>	
/**
 * Script结合方式二
 */
<script type="text/javascript" src="../js/index.js"></script>
/**
 * JavaScript语法
 */
1)弱变量类型的语言
2)没有文档注释
3)带var声明表示局部变量,不带var声明表示全局变量
4)一个var允许声明多个变量,逗号分隔
5)建议每句以分号结束,允许不加分号
6)变量的书写区分大小写
var weMou = "nobody";
weMOu = 666;
weMou = true;
/**
 * 变量分类
 */
原始类型 ~ Java中的基本数据类型
对象类型 ~ Java中的引用数据类型
/**
 * 堆内存和栈内存
 */
栈内存特别小,存放所有的引用地址,和原始类型的值
堆内存相对大,存放对象类型的值
/**
 * js中的原始类型
 */
1) number	 数字
2) string	 字符串
3) boolean	 布尔值
4) null		 手动置空对象,对象数据类型的占位符
5) undefined 变量未初始化
/**
 * typeof
 */
返回原始类型数据的数据类型
/**
 * js语句
 */
1)判断
	if else
	switch
2)循环
	for
	while do
	do while	
/**
 * js中的运算
 */
NaN not a number 表示错误的数字,如:+"a"
2!=true
null==false
NaN!=NaN
/**
 * 数据类型转换
 */
js是弱类型的语言,js会在需要的时候,自动转换数据的类型
/**
 * Function对象  函数对象
 */
function funWenHou(){
    return "Hello Word";
}
var funWenHou = function (){
    return "Hello Word";
}
var funWenHou =  new Function ("return 'Hello Word';");
console.log(funWenHou());
console.log(funWenHou.toString());
/**
 * 属性和传参
 */
function funWe() {
	console.log(this.length);//参数个数
    console.log(arguments);  //参数数组
}
funWe("we","we","zhang");
/**
 * void()
 */
拦截方法的返回值
function funWe() {
    return "wewezhang";
}
javaScript: void(funWe("wewezhang"));
/**
 * void(0)
 */
href = "javaScript:void(0)"
src = "javaScript:void(0)"
阻止默认行为,阉割掉
/**
 * 三大包装对象 - String对象
 */
java中有"自动拆装箱机制"
js中有"伪对象"的概念,原始类型可以直接调用对应包装类型的属性和方法
//创建,构造方法具有强制类型转换的功能
var weString = new String(此处允许填任何类型数据);
//属性
weString.length            字符串的长度
//方法,伪对象的方法
"helloWord".length
"hello".charAt(0)          返回指定索引位置的字符
"hello".concat("Word")     拼接字符串
"helloWord".slice(0,5)     截取字符串
"helloWord".substring(0,5) 截取指定索引号间的字符串
"helloWord".indexof("a",0) 从某索引开始检索字符串
"helloWord".split("")      分割为字符串数组
"helloWord".replace()      替换匹配正则
/**
 * instanceof
 */
判断对象数据的类型是否为某种类型
var str = new String("wewezhang");
if (str instanceof String) {
}
/**
 * Global对象
 */
不需要创建实例,即可直接调用全局属性和全局方法
encodeURI("")          用于对整体url编码,忽略特殊字符的编码
decodeURI("")		   用于对整体url解码,忽略特殊字符的解码
encodeURIComponent("") 用于对url中的参数进行编码,同时会对特殊字符进行编码
decodeURIComponent("") 用于对url中的参数进行解码,同时会对特殊字符进行解码
parseInt("007")
parseFloat("8.88")
var x = parseInt("ax5");
if (isNaN(x)) {
    console.log("是NaN");
} else {
    console.log("不是NaN");
}
eval("console.log('这也太神奇了')");
Math.abs(-123.321)  取绝对值
Math.round(123.321) 四舍五入
Math.ceil(123.321)  向上取整      
Math.floor(123.321) 向下取整
Math.random()       随机数
/**
 * 数组Array对象
 */
var weArray = [1,2,3];
var weArray = new Array(1,2,3);
var weArray = new Array(8);    //比较特殊,8表示数组长度
当参数只传递一个数字的时候,表示创建一个长度为数字的空数组
//压栈,按内容
var weArray = [1,2,3];
console.log(weArray);
weArray.push(4);
console.log(weArray);
weArray.unshift(0);
console.log(weArray);
//弹栈,按序列号
var weArray = [0,1,2,3,4];
console.log(weArray);
weArray.pop(4);
console.log(weArray);
weArray.shift(0);
console.log(weArray);
//reverse()  数组反转
var weArray = [0,1,2,3,4];
console.log(weArray);
weArray.reverse();
console.log(weArray);
//sort()  数组排序
var weArray = [1,3,1,8,4,1,5,2,8,9,1];
console.log(weArray);
weArray.sort(function(weNum1,weNum2){return weNum1-weNum2});
console.log(weArray);
weArray.sort(function(weNum1,weNum2){return weNum2-weNum1});
console.log(weArray);
/**
 * Date
 */
var weDate = new Date();
var weDate = new Date(1490842239819);
console.log(weDate.getFullYear());
console.log(weDate.getMonth()+1);
console.log(weDate.getDate());
console.log(weDate.getHours());
console.log(weDate.getMinutes());
console.log(weDate.getSeconds());
console.log(weDate.getTime());
console.log(weDate.getDay());
/**
 * Window对象
 */
浏览器自动创建,不需要程序员管理
window.alert("弹出警告框");
window.confirm("你真狠心这么做吗?");
window.prompt("请输入口令:床前明月寄相思");
/**
 * 定时器
 */
var oInterval = setInterval(function(){
    alert("wewezhang");
},1000);
clearInterval(oInterval);
var oTimeout = setTimeout(function(){
    alert("wewezhang");
},1000);
clearTimeout(oTimeout);
  
/**
 * 猜数字小游戏
 */
function funTest(number){
    var iMou = Math.round(Math.random()*100);
    iMou = number?number:iMou;
    var iInput = window.prompt("请输入0到100之间的整数", 0);
    if (isNaN(+iInput)) {
        alert("输入不合理,请重新输入数字 "+iMou);
        funTest(iMou);
    } else {
        if (+iInput==iMou) {
            window.confirm("恭喜你蒙对了,是否继续玩")?funTest():true;
        } else {
        	if (+iInput>iMou) {
        		alert("大了,请重新输入数字 "+iMou);
        	} else {
        		alert("小了,请重新输入数字 "+iMou);
        	}
        	funTest(iMou);
        }
    }
}
funTest();

  

posted @ 2017-03-25 06:33  WeWeZhang  阅读(379)  评论(0编辑  收藏  举报