js笔记个人小结1

 js:是一个编程语言,允许用户在浏览器页面上完成复杂的事情

一个完整的Javascript包括核心(ES5),应用程序编程接口即API (比如 DOM,BOM),以及

其他第三方API。JavaScript与HTML、CSS一同配合共同完成一个复杂页面的显示。

JavaScript特殊的地方在于它也可以作为服务器端代码执行,但是需要搭建Node环境。

是一种解释性语言(无需编译),(弱类型语言)从上往下顺序解析执行。

类型:内部js<script></script>

          外部js<script type="text/javascript" src=""></script>

注释:ctrl+/    ---->      单行//        多行/*    */

关键字(在js中有特殊功能):

          do try typeof case else new var  

           switch while  this function with

保留字(将来可能成为关键字):import public

变量: 定义变量时使用var关键字。可以用来保存任何类型的数据。

           声明 var message;

           初始化 message = "hello"

           声明并初始化 var message = "hello";

           定义多个变量 var message= “hello”,found=false, age = 29;

对象:由键值对组成,通过使用大括号将所有键值对括起来var dog={name : 'Spot', breed : 'Dalmatian'}

数组:是一个特殊的对象,包含了多个值,值与值之间使用逗号分隔开,所有的值通过中括号括 起来

         例:var myNameArray =[];

函数:是代码执行单元,用于实现某些特殊的功能。例:function add(a,b){return a+b;}

命名:变量名由字母,数字,下划线以及$组成

          驼峰命名规则:第一个单词首字母小写,剩余单词首字母大写

数据类型:undefined(未定义类型)/Null(空引用数据类型)/Boolean(布尔类型)

              /Number(数字类型)/String(字符串类型)/引用数据类型

在JS中,所有的数字统一使用Number来表示

Number:(按数字精度划分):整数(int),单精度(float),双精度(double )

整数:(按数字的表示方法划分):二进制,八进制(首位为0),十进制,

                                                     十六进制(首位为0x)(ABCDEF代表10-15)

进制:十进制-->其他进制:以十进制数值除去其他进制的数值就可以,将余数倒叙写就可以

          其他进制变十进制:例:八进制数1507转十进制-->1*8^3+5*8^2+0*8^1+7*8^0=839

浮点数:科学计数法:3.125e7即31250000

非数值(该数值表示一个本来要返回数值的操作数未返回数据的情况):var a=10/'a';    //a为NaN

非数值检测(判断参数是否“不是数值”):当参数para不是数值的时候返回true;isNaN(NaN); //true

数值范围:计算结果超过js数值范围返回infinity   var a=9/0      //infinity

数值范围检测:isFinite()函数    var a = isFinite(9/0);    //false

Null:如果一个变量准备将来保存对象,可以将该变量初始化null而不是其他,这样可以

       通过检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

例: if(car !=null ){ //car对象执行某些操作}

Undefined:该类型只有一个值undefined。

                    对未声明和未初始化的变量执行typeof操作符都返回undefined。

例:var a;    console.log(a);     console.log(typeof a); // undefined

String:字符串。字符串可以由双引号或者单引号表示

通过length属性获取字符长度

typeof:检测一个变量是否存在,是否有值。

同一个标识符的情况下(声明的名字一样),变量声明与函数声明都会提升;函数声明

会覆盖变量声明,但不会覆盖变量赋值,即:如果声明变量的同时初始化或赋值

那么变量优先级高于函数。

一元运算符:

var a = 3;     a++;     //4       a--;       //3

(*=,/=,%=,+=,-=)var a = 4; a+=3;      //a = a + 3;

比较运算符产生结果:Boolean类型

==是否值等于   ===是否恒等于(值、数据类型)

!=是否值不等于   !==是否不恒等于

逻辑运算符:与&&:.如果两边条件都为true,则结果为true

                    或||:如果有一边条件为true,则结果为true

                    非!:先将任意类型的数值转换为Boolean,然后取反.

                         连用两次逻辑非 ,就可以将任意数据类型转化为Boolean类型

                         !a  //true        !!a   //false

三目运算符:return m>n?m:n; //如果m>n为true返回m,如果m>n为false,返回n

类型转换:toString()函数:除了null,undefined,其他三种基本数据类型的变量均有一个

                                       toString()函数,该函数可以获取该变量 指定值的字符串表示

Boolean()函数:任意其他数据类型都可以转换为布尔类型。

parseInt()函数:如果转换的值是null,undefined,boolean,均转换为NaN

Number()函数:

加法:true + false; //1;Number(true)+Number(false);

          true + 1; //2;Number(true) + 1

         当m,n有一个为String,无论另一个操作数为何(但不为对象)

         都要转换为String,然后再进行拼接

Var stu={id=”45”,

id:1001,

//匿名函数:没有函数名的函数

sayId:function(){

console.log(id);id作用域:函数内部

Console.log(this.id);id作用域:stu集合内部

}}

this:方法与属性之间进行沟通

匿名函数:没有函数名的函数

stu4.sayId();//1001

stu4.sayId;//没有函数的执行过程

console.log(stu4.sayId);//console.log(id);id作用域:函数内部Console.log(this.id);id作用域:集合内部

函数表达式:将一个匿名函数(没有函数名的函数)赋值给一个函数变量.

解析器在向执行环境中加载数据时,会率先读取函数声明,并使其在执行任何代码之前可用;当执行器执行到函数表达式的代码的时候才会真正的解释执行

JSON.stringify(obj) //将对象序列化为Json字符串,只能序列化对象可枚举的自有属性。

JSON.parse(jsonStr)//反序列化

var  obj1=new Object();

obj1.id=1001;//新增成员

var obj2={};

function print(){console.log('print');}

print();//print

obj2.print=print;//不要加圆括号,否则保存的是函数的执行结果

var obj={_year:2000};

//预定_开头是不可操作、不可读的变量:系统级别的变量

循环:

while(){}

do{}while()

for(){}

switch(){

case1:;

}

break:立即跳出循环体;continue:立即结束当前循环,进入下一次循环。

构造函数:var person = new Object()

person.name=“”;

person["name"]

原型链:

  var obj=new Object();

  var str=new String();

  console.log(obj.__proto__ ===Object.prototype);

  console.log(obj.__proto__ === str.__proto__.__proto__);

  console.log(Object.prototype ===str.__proto__.__proto__);

  console.log(Object.prototype === String.prototype.__proto__);

  console.log(str.__proto__.__proto__ === String.prototype.__proto__);

遍历:增强版for循环  for..in

检测属性:

in 检测某属性是否是某对象的自有属性或者是继承属性

hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false

propertyIsEnumerable():检查给定的属性在当前对象实例中是否存在

Object 类型所具有的任何属性和方法也同样存在于其他对象中,任何对象继承于Object对象。Object中常用的方法:

hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false

propertyIsEnumerable():检查给定的属性在当前对象实例中是否存在

constructor:保存用户创建当前对象的函数

toString():返回对象的字符串表示

valueOf():返回对象的字符串,数值,布尔值的表示。

key值保存的是可以被遍历访问到的属性名称

for(var key in obj){

Console.log(obj[key])

Delete obj[key]

}

Obj=null;

例:

  var obj={id:1001,name:'zs',add:function(){console.log('add');}}

  for(var k in obj){

    delete obj[k];

  }

  console.log(obj);

[]用法:key命名有特殊符号;变量值保存的是对象的Key值

函数调用:调用方法: 函数名(实参列表);

函数名.call(执行环境对象,实参列表);

函数名.apply(执行环境对象,实参列表数组);

function sayName(c1,c2){

    console.log(this.name+"\t"+c1+"\t"+c2);

}

sayName("red",'green');

sayName.call(this,'red','gree');

sayName.apply(this,['red','green']);

函数的内部属性

只有在函数内部才能访问的属性。

arguments : 类数组对象,包含着传入函数中参数

arguments.callee:用来指向拥有这个arguments对象的函数

this: 指向的是函数赖以执行的环境对象

this指代全局时,指向的是浏览器:window  node:global

var add = function(num1,num2){

    return num1+num2;

   }

var obj = add(10,20);

return :1.可以将函数内部的值返回给外部,2.函数执行结束

具体应用小实例:

function mySetTimeOut(fn,seconds){

    console.log("sleep 了"+seconds);

    fn();

}

mySetTimeOut(function(){

        console.log("换下一张图片");

},100);

//sleep了100

//换下一张图片

数组:

使用Array构造函数

var arr = new Array();

var arr = new Array(20); // 预先指定数组的大小

var arr = new Array("terry","larry","boss"); //传入参数

var arr = ["terry","larry","boss"];

var arr = [] //空数组

索引:var arr = ["terry","larry","boss"];

arr[0] ; //访问数组中第一个元素,返回值为terry

var arr = ["terry","larry","boss"];

arr[3] ="jacky"; //添加元素,数组程度变为4

检测:Array.isArray()

数组序列化:  toString() 在默认情况下都会以逗号分隔字符串的形式返回数组项

join(); 使用指定的字符串用来分隔数组字符串

例:var arr = ["terry","larry","boss"];

arr.toString() //terry,larry,boss

arr.join("||"); //briup||terry||jacky

栈:push() 可接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度      pop()从数组的末尾移除最后一项,减少数组的length值,返回移除的项

队列:shift() 移除数组中的第一个项并且返回该项,同时将数组的长度减一。

unshift() 在数组的前端添加任意个项,并返回新数组的长度。

排序:reverse() 反转数组项的顺序

sort() 默认排序:该方法会调用每个数组项的toString() 方法,然后按照字符序列排序

常用迭代:forEach() 对数组中的每一运行给定的函数,没有返回值,常用来遍历元素

闭包()()

       例:addEventListener('click',(function(num){

         return function(e){

           alert(num);//if(num==1)

         }

       })(i))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值