1,解释型语言 和编译型语言
编译型:
先讲我们编写的代码,转换成计算机能够读懂的字节码,然后将将这些字节码保存起来,生成一个可执行文件,当下次需要的时候直接执行这个可执行文件(java, c)
解释型:
先讲我们编写的代码,转换成计算机能够读懂的字节码,然后并不是保存起来生成可执行文件,而是直接执行(php,javascript)
2,javascript的变量作用域
全局作用域:javascript可执行的所有范围都起作用
局部作用域:当前函数内起作用
举个例子:
如果函数内部定义了和函数外部相同的变量,函数内部操作的是局部范围的变量,函数外部操作的全局范围的变量
varv = 'global';
functionf1(){
varv = 'function';
alert(v);
}
f1();
② var v = 'global';
functionf1(){
alert(v);
varv = 'function';
}
f1();
为什么是undefined?
Javascript代码执行流程:
Javascript代码整体上是按照html文档流执行,但是也并不是完全按照,而是优先执行函数,这时函数内部的局部变量暂时设置为undefined
3③
varv = 1;
functionf1(){
v+= 1;
alert(v);
}
f1();
f1();
Javascript的数据类型:(8大数据类型)
基本数据类型(原始数据类型)
Undefined
声明了但是未初始化(第一次赋值)
函数没有返回值
Null
未找到的(未定义的对象),一个对象
Boolean
True,false
Number
整数和小数都是数值类型
String
Javascript是基于对象的语言,因为他没有类的概念
所有的数据都是对象,
人----对象 俄罗斯人 ,美国人中国人是类型
varstr = 'hello world';
varstr2 = 'nihao';
//alert(str.length);
//alert(str.concat(str2));
alert(str.toUpperCase());//验证码不区分大小写的时候
alert(str.substr(2,3));//参数1,待截取的字符的索引,参数2,截取的长度
对象数据类型(引用数据类型)
1,数组
//获得数组
vararr = ['xiaobai',123];
vararr2 = new Array('xiaohei',456);
//引用数据类型(引用的是同一个地址)
vararr3 = arr2;
arr2.push('hello');
//alert(arr3);
varstr = arr2.toString();
alert(typeof(str));
for ...in
//遍历数组的元素
vararr = ['zhangsan','lisi','wangwu','zaholiu'];
vari;
for(iin arr){
alert(arr[i]);
}
2,对象
获得对象
(1)new Object()
(2)通过构造器(构造函数获得对象)
//通过构造函数(构造器)获得对象
function student(){
this.name="wanger";
}
var obj = new student();
alert(obj.name);
说明:构造器就是一个普通的函数,只是当我们通过new 函数名()来调用的时候,获得一个对象,这时候这个函数就称之为构造函数,构造函数内部通常使用this来代表当前的对象
(3)json {}
varobj = new student();
alert(obj.name);
//通过json快捷语法来获得
varobj2 = {'name':'zhangsan'};
alert(obj2.name);
Javascript 内置对象
作业:比较floor ceil round 区别
varnum = 0.123;
alert(Math.ceil(num)); //1
alert(Math.round(num));//1
alert(Math.floor(num));//0
随机点名:
Date对象数字时钟
函数对象
//函数是一个值,因为我们可以用一个变量来保存,通过变量(函数名)来找到这个函数
varf1 = function(){
alert('hello');
}
f1();
alert(typeof(f1));
Alert()
Window.alert();
函数作用域链:
从最低级向上一级查找的过程
函数的参数:
函数的参数在调用时和声明时,参数个数可以不一致,因为在函数内部有一个专门管理函数参数的对象,这个对象可以获得真实的参数
求函数参数的和
function f2(n1,n2,n3,n4){
alert(arguments[1]);
}
f2(1,2,4,5);
confirm
<p id="p1">删除我吧</p>
<scripttype="text/javascript">
//alert(confirm('确认要删除吗'));
//获得用户点击哪个按钮(确认还是取消),确认返回true 取消返回false
if(confirm('确认要删除吗')){
document.getElementById("p1").innerHTML='';
}
</script>
猜数字
alert(prompt('请输入数字',2));
//随机产生一个数字
//让用户输入的数字和随机产生的进行比较
//规定次数
varrandom = Math.random()*100;
varinput = prompt('请输入数字',2);
if(input<random){
alert("你猜的数字太小了");
}elseif(input>random){
alert("你猜的数字太大了");
}elseif(input==random){
alert("恭喜你猜对了");
}
Eval() 函数会将函数的参数当作js的表达式来运行
例如eval(‘1+2’)结果是3
在input表单中,如果是text password这种输入类型的文本框的话,size 属性规定用户可以输入的字符个数
如果是其他的属性的表单的话,size表示所占像素的大小
注意:
获得标签的内容用innerHTML
获得表单的值 用value
计算器
核心代码
/*
获得用户输入的数字绑定onclick事件
开始运算
求结果
*/
varflag = true;
functiongetNum(num){
if(!flag){
document.getElementById('res').value= '';
flag= true;
}
document.getElementById('res').value+= num;
}
functiongetRes(){
varnum = document.getElementById('res').value;
num= eval(num);
document.getElementById('res').value= num;
flag= false;
}