引擎:
CHRA --------------
CHROM-----------谷歌
Var -------------------创建一个变量(A)
a=20------------------------给变量a赋值为20 赋值之后才能成为初始??
布尔表达式--------------------(true)为真(false)为假
(布尔表达式)?为真时显示:为假时显示--------------三项运算
a++--------------------------------以后取这个变量要加1
++a-----------------------------------使用这个变量时加1
^----------------------------亦或 a^b
a=a^b-----------------a=a,b
b=a^b-----------------b=a
a=a^b-------------------a=b
.length-------------------------数组的个数
console.log()---------------------打印括号内的内容
arr[]------------------------------------数组
alert---------------------------弹窗
document.write("111")-------------直接在网页中显示1111
a>b?alert(666):alert(111);---------当a>b则弹窗666当a<b则弹窗111
++ - - ------------------------------累加 累减
a++ ++a--------------------------------前缀是取值之间做加法,后缀是取值之后再做加法
!---------------------------------求反 var a=0;alert(!a)//为真
var-----------------js里的一个关键字 表示定义一个变量,可以理解为开辟一个空间。;如: var a;
a=10;---------------给一个变量赋值,也可以叫做变量初始化。
变量里面可以放的东西:
1、字符串(string)。字符串必须用引号抱起来:“yangcheng”、“123”、“也可以是中文”。
2、数字(number)。10、35、……(只能有一个值)。
3、数组(array)。数组里面可以放多值 这里相当于把整个数组当做一个整体,数组必须用【 】包起来
4、对象(object)。对象就是把一对一对的 名 与 值 放在一起,对象必须用 { } 包起来。
5、布尔值(boolen)。布尔值就相当于一个 判定式,只能为真(true)或者为假(false)也可以用
一个表达式来表达是否为真。0、未定义、空字符串为假。
6、undefined(未定义)。相当于不给变量赋值。
7、函数(function)。function(){ };一个工具盒,只有被调用时才会执行。
以上类型又分为两类:
1、强变量(基础类型):本身值不可变,例如: var a=10; var b=a; b=20;这时a的值还是10,不
不会随着b改变。
2、弱变量(复合类型):本身值可变,如: var a={name:”yangcheng”,eage:”23”,} ;
var b=a;
b.eage=24; 这时a里面的eage值也会变为24.
强变量有(基础类型):字符串(string)、数字(number)、布尔值(boolen)。
弱变量有(复合类型):函数(function)、对象(json)、数组(array)。
undefined-----------------未定义,不知道是什么。
null----------------------表示知道它的类型,但是地址未空。
var b={}-----------------对象为空,里面没有东西。
var a=“ ”-------------------空的字符串。
怎样判断一个变量是否是一种类型:
console.log(a.constructor==类型)如果是就打印true,如果不是就打印false。
类型: 前缀: 类型: 实例: 译意:
字符串 s string sUserName 用户名
函数 fn function fnHandler
布尔值 b Boolean bisComplete 是否完成
整数 i Integer iCount 个数
浮点数 f Float iPrice 价格
数组 a Array aMeunItems 菜单条目
正则表达式 re RegExp reEmallcheck emall检查(检查规则)
任意变量 v Variant vAnything 任意变量类型
数字 number
不是数字 NaN
ParseInt()number(a)-----------------把一个变量转换为数字类型
a.to string / string(a) / a+ “” ---------------------把一个变量转换为字符串类型
switch-----------------自动匹配,匹配到有这一项就执行某条指令。
switch(a){
case a:
指令,
break,
case b:
指令
break,
}
break----------匹配到这一项就停止后面的匹配
continue------------跳过本次执行
if () {} else {}----------条件选择执行,小括号面填条件,如果条件成立执行第一个大括号内的内容,否则执行第二个大括号内的内容。可以连续写下去 if else if else if else
for(语句1;语句2;语句3){执行体}---------------for循环,如果条件成立则执行执行体,条件允许的情况下会一直循环下去,终止整个循环用break,终止当前这次循环用continue,通常结合if使用,,,语句2放条件
function fn() {} --------------------函数, 里面可以放一系列执行语句,平时不会执行,只有当被调用时才会执行。
调用函数:函数名 ( ) 函数名后面的小括号里放参数
function fn() { }-----------------------函数的声明式
var a= function fn ( ) { }------------------函数的表达式
return-----------返回值,就是函数执行到这后面的就不执行了并且返回出一个结果给函数体外面
内部自调用就是在函数内部写上:fn()这样只要当这个函数被调用一次他就会自己调用自己,一直循环下去,直到出现 break return 这样的关键字才会停止,类似于for循环
function fn(){ fn () }
阶乘: function fn(name){
if(name<1){return 1}
return name*fn(name--1)
}
当输入 fn(5)时就调用函数,name值就等于5,这是就会执行里面的内容
它首先会判断5是否小于1 如果不小于就会跳过,执行下面的
然后遇见return 他就会返回一个值,但是这个值为5*fn(5--1),
这里就会再次调用函数本身,不同的是这里的name变成name—1,就变成4了
这样一直循环下去,直到name值小于1时 又会返回一个1,应为他是从最后1返回
所以就有了1*1*2*3*4*5,这就等同于数学中的阶乘了
arguments【】-----------------表示函数实际参数的项,也叫实参
arguments。length-----------实参个数
把函数作为参数:例如:::fn ( function fm ( ) { } )可以简写为 fn( fm)
这样写通常第二个函数fm会有一个返回值,然后再把这个值交给第一个函数fn来用。
function fm(n){var a=10; return a;}; 这里的返回值为10;
function fn(m){console.log(m)};这里打印传入参数(m);
fn(fm)------最后打印值为10.
1、传入的函数没有参数没有返回值 有没有参数主要看使用这个函数时要不要用到参数
2、传入的函数没有参数有返回值 有没有返回主要看函数内有没有return
3、传入的函数有参数没有返回值 需要传入哪一类函数就要看具体的函数使用时的情况
4、传入的函数有参数有返回值
函数的回调—-----------------------只要是把一个函数当做参数放进另一个函数内使用就叫做 回调
变量的作用域:就相当于指函数内部与函数外部有一堵墙,函数内部可以直接用外部的变量,而函数外部就不能直接使用函数内部的变量,只有特定的条件下才可以使用。
全局作用域:就是指<scipt>标签内的所有区域。
局部作用域:就是函数内部的作用域。
不管是全局作用域还是局部作用域都会优先把函数整体,和变量的声明(变量并没有初始化)放在最前面
在取变量时它会先向上再想外寻找 如果函数内部声明了那个变量 但是在使用时还没有初始化他就会显示未undefined
声明变量的位置不会影响空间的开辟,只会影响初始化数据的位置
闭包就是把函数从一个函数内部传出去。让外部也可以使用它。
function fn ( ) { function fm ( ) { console.log ( 666 ) } ; return fm ; }