day30js

JavaScript

  • js是基于对象和事件驱动的脚本语言,主要应用在客户端
  • js是弱类型,java是强类型(每种类型都是固定的,都有具体的定义)

js和html

两者结合的方式:

  1. 将js代码封装到script标签中
  2. 将js代码封装到js文件中,通过script中的src属性导入
  3. 注意:如果script标签中使用src属性,那么同一个script标签内封装的js代码不会执行,所以通常导入js文件都是单独用一个script标签

js语法

js定义变量使用关键字var

变量
var x = 3;
x = "abc";//重新赋值为字符串abc(因为是弱类型)
x = true;
var a = 3564;
运算
alert("a="+a/3000*3000);//js为弱类型,所以int/int可以等于float			
alert("12"+1);//121
alert("12"-1);//11
alert(true+1);//2,在js中true默认为1
var n = 3,m;
m = n++;
alert("n="+n+",m="+m);//n=4,m=3
alert(n==5);//false
var t = 4;
alert(t>3 && t<6);//true,逻辑运算符
alert(!t);//false,t为真
alert(t>3 & t<6);//1,位运算符
alert(t & 3);//0,100&011=000=0
3>0?alert("yes"):alert("no");//yes,三元运算符
alert(3>1?100:200);//100
//想要获得具体的值的类型,可以通过typeof实现
alert(typeof("abc"));//string
alert(typerof(2.3));//number

js语句

//if语句
var x = 3;
if(4==x){alert("yes");}//建议将常量放左边
else{alert("no");}

js中数组的定义:

  1. var arr=[ ];var arr = [12, 23, 44];
  2. 使用js中的Array对象完成
    var arr = new Array(5);长度为5的数组

特点:

  1. 长度可变
  2. 元素的类型是任意的,建议存储统一类型元素

js函数

function demo(){
    alert("demo run");
    return;
}
demo();
function add(x,y){
  return x+y;
}
var z = add(4,8);
//js函数不存在重载形式
//动态函数
var add = new Function("x,y","var sum; sum = x+y; return sum;");
var a = add(4,8);
alert("a="+a);//12
//动态函数的参数和方法体都是通过字符串传入的
  • 在脚本片段中定义的变量为全局变量
  • 在函数中定义的为局部变量
常见对象
Object对象
obj = new Object([value]);
toString();返回对象的字符串形式
valueOf();返回对象的原始值
var arr = [1,2,3];
alert(arr.toString());//1,2,3 数组的字符串形式
function show(){
  alert("show run");
}
alert(show.toString());//function show(){alert("show run");} 函数的字符串形式

String对象
//定义一个函数,去除字符串两端的空格
function trim(str){
  var start,end;
  start = 0;
  end = str.length-1;
  while(start<=end && str.charAt(start)==" "){
      start++;
  }
  while(start<=end && str.charAt(end)==" "){
      end--;
  }
  return str.substring(start,end+1);
}
//prototype:返回string对象的原型
String.prototype.len = 99;//给string的原型对象添加一个属性len,其值为99
String.prototype.trim = function(){trim的函数体,arr改成this}

Array对象
//concat();延长数组
var arr = ["aa","bb","cc"];
var arr2 = ["lzh",18,11];
var newarr = arr.concat("s",arr2);//["aa","bb","cc","s","lzh",18,11]
arr.join("-");//aa-bb-cc
arr.reverse();//反转
arr.shift();//删除并返回第一个元素
arr.pop();//删除最后一个
arr.slice(start,end);//切片,含头不含尾
arr.splice(start,count,ele1,ele2...);//删除元素并替换
arr.unshift("fxl");//将指定元素插入开始位置并返回数组

Date对象
var date = new Date();
date.toLocaleString();
var day = date.getDay();
var month = date.getMonth()+1;//从0开始
var millitime = date.getTime();
//省略date的写法
with(date){
  var day = getDay();
var month = getMonth()+1;
var millitime = getTime();
}
全局方法
parseInt();返回字符串的整数值
var a = parseInt("123");//123
var b = parseInt("abc");//NaN
//将指定进制转换成十进制
var num = parseInt("110",2);//6
自定义对象

js是基于对象而不是面向对象的,不具备描述事物的能力

function Person(){
  alert("person run");
}//相当于构造器
var p = new Person();//建立对象
p.name = "lisa";//添加属性
p.age = 23;
p.show = function(){
  alert("name:"+this.name+",age"+this.age);
}//添加方法
p.show();//调用方法
function Person(name,age){
  this.name = name;
  this.age = age;
  this.setName = function(name){
    this.name = name;
  }
  this.getName = function(){
    return this.name;
  }
}//含参构造器
var p1 = new Person("syh",16);
for(x in p1){
  document.write(x+":"+p1[x]+<br>);
}//取出对象中的属性值
var map = {
  name:"zhaosi",age:27
}//集合
alert(map.name+":"+map["age"]);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值