js----基础

手册:https://www.w3school.com.cn/js/index.asp

 基础:

 

变量 
<script type="text/javascript">
    // 全局变量
    name = 'seven';
    function func(){
        // 局部变量
        var age = 18;
        // 全局变量
        gender = "男"
    }
</script>

逻辑运算符

console.log(1&&3); //3  两个为真才为真(0为假,其他的数字都代表真)
console.log(0&&3); //0  只要有一个为假则为假
console.log(0||3); //3  
console.log(2||3); //2

比较运算符

var bResult = "25" < "3";
alert(bResult); //输出 "true"
上面这段代码比较的是字符串 "25" 和 "3"。两个运算数都是字符串,所以比较的是它们的字符代码("2" 的字符代码是 50,"3" 的字符代码是 51)。

不过,如果把某个运算数该为数字,那么结果就有趣了:

var bResult = "25" < 3;
alert(bResult); //输出 "false"

这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。

总结:

比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.
比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较.

 分支结构

if (表达式1) {
    语句1;
}else if (表达式2){
    语句2;
}else if (表达式3){
    语句3;
} else{
    语句4;
}

  

switch基本格式
switch (表达式) {
    case 值1:语句1;break;
    case 值2:语句2;break;
    case 值3:语句3;break;
    default:语句4;
}

 案例:

switch(x){
case 1:y="星期一";    break;
case 2:y="星期二";    break;
case 3:y="星期三";    break;
case 4:y="星期四";    break;
case 5:y="星期五";    break;
case 6:y="星期六";    break;
case 7:y="星期日";    break;
default: y="未定义";
}

 

 转义

decodeURI( )                   URl中未转义的字符
decodeURIComponent( )   URI组件中的未转义字符
encodeURI( )                   URI中的转义字符
encodeURIComponent( )   转义URI组件中的字符
escape( )                         对字符串转义
unescape( )                     给转义字符串解码
URIError                         由URl的编码和解码方法抛出

eval

JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值。

 

正则表达式 

1、定义正则表达式

/.../  用于定义正则表达式
/.../g 表示全局匹配
/.../i 表示不区分大小写
/.../m 表示多行匹配

JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容)

var pattern = /^Java\w*/gm;
var text = "JavaScript is more fun than \nJavaEE or JavaBeans!";
result = pattern.exec(text)
result = pattern.exec(text)
result = pattern.exec(text)
注:定义正则表达式也可以  reg= new RegExp()

JavaScript中支持正则表达式,其主要提供了两个功能:

    test(string)     检查字符串中是否和正则匹配
    n = 'uui99sdf'
    reg = /\d+/
    reg.test(n)  ---> true
    # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$

匹配

JavaScript中支持正则表达式,其主要提供了两个功能

  test(string)     检查字符串中是否和正则匹配 

1 n = 'uui99sdf'
2 reg = / \d + /
3 reg.test(n) - --> true
4 # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$

exec(string)    获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。
 
非全局模式
    获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)
    var pattern = /\bJava\w*\b/;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)
 
全局模式
    需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕
    var pattern = /\bJava\w*\b/g;
    var text = "JavaScript is more fun than Java or JavaBeans!";
    result = pattern.exec(text)

 语句和异常:

FOR循环

JavaScript中支持三种循环语句,分别是:

var names = ["alex", "tony", "rain"];
 
for(var i=0;i<names.length;i++){
    console.log(i);
    console.log(names[i]);
}

var names = ["alex", "tony", "rain"];

for(var index in names){
    console.log(index);
    console.log(names[index]);
}

while(条件){
    // break;
    // continue;
}

  

异常处理

try {
    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
    //e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
     //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}
注:主动跑出异常 throw Error('xxxx')

 函数:

函数调用

匿名函数

<script>
    //等页面加载完毕执行
    window.onload = function(){
        console.log("1")
    };
    //通过变量调用
    var obj1 = function(){
        console.log('alert-通过变量调用')
    };
    obj1();
    //直接调用
    (function(){
        console.log('alert1-直接调用')
    })();
</script>

普通函数调用

<script>
    function fun() {
        console.log("1")
    }
    fun();
</script>

私有方法调用

<script>
    var Validate = function(){
        var handle = function(){console.log("-----")}  //私有方法
        return {
            test:function(){
                handle();   //通过test来执行handle方法
            }
        }
    }();
    Validate.test();
</script>

  

 

posted @ 2019-03-10 13:09  小名的同学  阅读(198)  评论(0编辑  收藏  举报