JavaScript基本语法笔记

变量

使用关键字var来定义变量,js的变量是弱类型,var不写也可以

var a = 0; a = "abcv"; a = true;a=3.15;

运算符

算术运算符

var a = 3170; b = a/1000*1000;
b = 3170 js是弱类型a/1000 不是等于3
"12"-1 = 11 js会将字符串转换再做运算不是字符串相加减
2%5 = 2;

  • js中fase是0或者null,非0非null就是true
  • ++问题

var n = 3,m; m = n++; n = 4;m =3;
var n = 3,m; m =++n; n = 4;m =4;

赋值运算符

= += -= /= %

比较运算符

< > == <= <= 运算的结果不是false就是true

逻辑运算符

! && || 用来连接两个Boolean的表达式, &是位运算符

alert(a>3 && b<8); true | false
alert(a > 3 & b < 8);1 | 0
alert(!t); false | true;   非0或非null取反

位运算符

& | ^ >> << >>> <<<

var c = 6;
alert(c&3);2 (相同为真)
110
011
010
alert(5^3^3);5(不同为真)
alert(6>>1);6除于2的1次方=3
alert(6<<2);6x2的2次方 = 24

三元运算符

? : 可以是ifelse的简写形式

其他

1.undefined 未定义,有变量没赋值,其实就是一个常量

xx==undefined

2.获取值的类型,可以通过typeof获取

alert(typeof('a')=='string');//number boolean

语句

顺序结构,从上往下执行

判断结构 if

var t = 1;
if(t == 2); 判断,建议将常量放左边
if (t = 2); 赋值true

选择结构 switch

var a = "bd";
switch(a){
  case "cc":
        alert("cc");
break;
  default:
      alert("default")
break;
}

循环结构 while for

while(t < 8) {};
for(var x = 0; x < 3; x++){document.write("a");}

其他 break continue

w:for(var x = 0; x < 3; x++){
      for (var y = 0; y < 4; y++) {
          doucument.write("a");
          continue:w;
      }
}

数组 对象类型(object)

1.定义数组两种方式

var arr =[]; var arr = [3,2,4];
var arr = new Array(); new Array(5);new Array(1,2,3,4,5);

2.arr.length 数组长度
3.遍历数组

for (var x = 0; x < arr.length; x++) {
    document.write("arr["+x+"]"+ arr[i]);
}

4.特点

  • 长度可变
  • 元素的类型是任意的。建议使用时存储同一类型的元素

函数

1.函数的格式

function 函数名(参数列表){
函数体;
return 返回值;如果没有返回值页可以省略return
}
函数名();调用

function add(x,y){
  return x + y;
}
var a = add(5,6);

2.只要使用了函数的名称,就是对这个函数的调用
3.函数中有一个数组有一个数组对传入的参数进行存储,这个数组就是arguments
4.函数调用没有加括号时,会返回方法定义的字符串

function a(){returen 100;}
var a = a// 会返回function a(){returen 100;}

动态函数

使用的是js中内置的一个对象Function

new Function("x,y","var sum; sum=x+y;return sum;");
add(4,8);

匿名函数

没有名字的函数,通常是函数的简写形式

var add = function(a,b){
    return a + b;
}
add(7,8);

变量

变量如果在script内声明变量在整个变量都有用----全局变量
变量在Function里面定义的是局部变量

<scrpit>
for (var x =0;x <3;x++) {}
doucment.write("x="+x);//x = 3 在本页面其他script里x也可以用
</script>

对象

Object

提供所有对象的通用方法。
object.toStrong()所有对象变成字符串对象
object.valueOf()返回指定对象的初始方法

String

1.定义

var str = new String("abc");
var str = "string";

2.常用方法

str.length长度(不是方法是属性没有括号)
str.bold()加粗使用Bhtml标签
str.concat()连接字符串
str.foncolor("red")字体颜色
str.link("http://b.com"); 链接
str.replace()替换
str.substr(1,3) 截取字符串 从哪开始长度
str.substring(1,3)//截取从哪开始到哪结束

3.自定义方法

 <script>
            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);
            }
            var s = "   a b c     ";
            alert(trim(s));
        </script>

4.prototype 属性

返回对象原型的引用,用这个属性提供对象的类的一组基本功能,相当于分类
给String的原型中添加一个功能

String.prototype.len = 180;
alert("sdf".len);//180

String.prototype.trim = function(){};//给字符串添加一个方法
str.trim();

Array

1.定义

var  arr = ["a","b","c'];
var arr = new Array(3);
var arr = new Array("","","")

2.方法

var arr = ["a","b"];
var arr2 = ["bc","dd"];
//连接数组
arr.concat("ds",arr2);//输出 ["a","b","ds","bc","dd"];
//join返回字符串,元素由指定分隔符分割
arr.join();//输出“a,b” arr.join("-") 输出 “a-b”;
//pop移除最后一个元素并返回该元素
arr.pop();//输出 “b”
//push 添加新元素(元素可以是数组),并返回数组的长度
arr.push("dd");//输出 3
//shift 移除第一个元素,输出被删除元素
arr.shift();//输出“a”
//slice 返回数组的一段
arr.slice(start,end);不包含end元素
//sort 排序
arr.sort();
//splice()删除元素,并可以元素进行替换,返回移除的元素
arr.splice(0,1,“dd”);输出"a", 数组变为 ["dd",b];
//unshift();将指定元素插入数组的第一个元素,并返回数组
arr.unshit("xx");//输出 ["xx","a","b"]

3.Array.prototype属性支持

Array.prototype.getMax = function(){};

Date对象

1.定义

var date = new Date();
var date = new Date(dateVal);
var date = new Date(y,m,d,[h,m,s.ms]);

2.方法

//parse 解析一个包含日期的字符串,返回1970.1.1与该日期的间隔毫秒值
Date.parse("7/16/2017")//1500134400000

with语法

为了简化对象内容的书写,可以使用js中的特有语句来完成

with(对象){
  在该区域中可以直接使用指定对象的内容,不需要写对象点
}
 var date = new Date();
            with(date){
                var year = getFullYear();
                var day = getDate();
                document.write(year+day);
            }

Math对象

Number对象

forin语法

var arr = [10,22,11,26];
for(i in arr){
    doucument.write(arr[i]);
}

自定义对象

如果想要自定义对象,应该先对对象进行描述,js是基于对象,不是面对对象。不具备描述事物的能力,我们还想按照面向对象思想编写js,就要先买搜索,在js中,可以用函数来模拟面向对象的描述

//第一种方式
//用js描述人,相当于构造器
function Persn(){
}
var p = new Person();
//动态给p对象添加属性,直接使用p.属性名即可
p.name = "name";
p.age = 29;
//如果定义的p对象的属性赋值为一个函数,即是给p对象添加一个方法
p.show = function(){};//p.show();

//第二种封装方式(描述事物)
function Person(name,age) {
//在给person对象添加两个属性
    this.name = name;
//对象添加属性访问其
  this.setName = function (name){
         this.name = name;
  }
  this.getName = function(){
       return this.name;
  }
}
var p = new Person("aaa",33);
p.setName("ss");
p.getName();

//第三种封装方式
var = pp {
  //定义一些成员
  "name":"sss",
  "age":33,
  "getName":function(){ return this.name; }
}
//对象调用成员的两种方式
var age = pp.age;
var age = pp["age"];

遍历对象

for (x in pp) {
 document.write(x+":"+pp[x]);
}
输出:name:ss   age:33   getName:function(){ return this.name; }

封装键值对方式

//myName和myAge不用先定义,用字符串也是可以的
var map = {
                myName:"sdf",
                myAge:12
            }
alert(map.myName+":"+map["myAge"]);//输出sdf:12
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,728评论 0 7
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,596评论 5 28
  • 古埃及金字塔看到的七十几座金字塔里面都是空的,奴隶大起义的时候将法老的尸体拖出来,里面的财富也被洗劫一空。有次考古...
    爱打蓝阅读 584评论 0 0
  • 今天是三十天写作训练营最后一天,要求写总结。1500字的大关,自己很少探及。说实话压力的确是有的,那么闲话少絮,总...
    黎象阅读 646评论 0 2
  • 鼎山我的是故园, 梦中,我回到鼎山。 那清晰再也不过的相聚, 那热忱再也不过的场面。 弟弟又苍老了许多, 但身子骨...
    陽光_86c1阅读 197评论 0 0

友情链接更多精彩内容