js基础语法

js: 由三个部分组成

1 ECMAscript5的核心 js语言
2 BOM 浏览器对象模型 js操作浏览器,做出对应的一些效果
3 DOM 文档对象模型 -- HTML文件

 

引入方式:

1 head标签的script标签里面(alert('xx'), confirm('xx'))
2 body标签后者body标签下面html标签上面的script标签里面
3 外部文件引入的方式来使用
a 创建一个.js结尾的文件,写上咱们的js代码
比如:alert('are you ok?');
b 在想使用这个js代码的html文件中,head标签或者body标签下面或者上面写下面的内容
<script src="01test.js"></script>
<script src="js文件路径"></script>
<script></script> 标签推荐写在body下面和html标签之间

 

变量:

var a = 10;  变量定义 var 变量名;
var b;  只声明,没有赋值的情况下,b的值为undefined 

number类型(整数,浮点数):

var n = 11;
var n2 = 11.11;
js代码注释  // js代码

查看数据类型 typeof 变量名;
    typeof n; -- number类型
    
变量声明,但没有赋值的时候,变量的值为undefined

string类型(字符串):

var a = 'alexsb';  此种类型为string
var a = new String('ss');  typeof a; -- "object"

移除两端,左边,右边空格: s.trim();   s.trimLeft(); s.trimRight();

var s2 = '   hello   ';
s2
"   hello   "
s2.trimLeft();
"hello   "

s2.trimRight();
"   hello"

s2.trim();
"hello"


var value = name.charAt(index)             // 根据索引获取字符
    示例: var s = 'hello'; -- s.charAt(4); -- 'o'
    
var value = name.substring(start,end)     // 根据索引获取子序列,切片
    示例: s.substring(1,3); -- "el"  左包右不包


字符串拼接: + 

s1
"hello world"
s2
"   hello   "
s1 + s2
"hello world   hello   "

布尔类型(boolean类型):

var a = true;
var b = false;
typeof a; -- "boolean"

undefined和null类型:

undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
null : 变量不用了,就可以给变量赋值为null, --- object类型 -- 和python的None一样

数组(array):

var name = [11,22,33];  typeof name; -- "object"

name.length -- 得到数组长度

数组常用方法:
names[0]                        // 索引,索引也是从0开始的

names.push(ele)                 // 尾部追加元素
    示例:a.push('xx'); --  [11, 22, 33, "xx"]
var ele = names.pop()         // 尾部移除一个元素
    示例:a.pop(); -- [11, 22, 33]
names.unshift(ele)              // 头部插入元素
    示例:a.unshift('ssss'); --  ["ssss", 11, 22, 33]
var ele = obj.shift()             // 头部移除一个元素
    示例:a.shift(); --  [11, 22, 33]
names.splice(index,0,ele)         // 在指定索引位置删除元素
names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个)) 
names.splice(index,1,ele)         // 指定索引位置替换元素
names.splice(index,1)             // 指定位置删除元素
    示例: a.splice(1,2) --  [11, 22, 33]
        a.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33]


names.slice(start,end)            // 切片
    示例:a.slice(1,3);--  [22, 33]
    
names.reverse()                  // 原数组反转
    示例:a.reverse(); -- [44, 33, 22, 11]
names.join(sep)                   // 将数组元素连接起来以构建一个字符串
    示例: var a = ['ni','hao','ma',18]
        a.join('+'); -- "ni+hao+ma+18"
names.concat(val,..)              // 连接数组
    示例: var a = [11,22]; var b = ['aa','bb']
    var c = a.concat(b); c -- [11, 22, "aa", "bb"]
    
names.sort()                     // 对原数组进行排序
    很尬!
    需要自己定义规则:
        var l4 = [11.11,2,4.5,33];
        function compare(a,b){
           return a - b;  当大于0时,两个数据换位置
        };
        使用: l4.sort(compare); 升序排列

自定义对象(dict):

// 声明
info = {
    name:'武沛齐',
    "age":18
}

var a = {username:'xx',password:'123'}; //可以不加引号
typeof info;
"object"

// 常用方法
var val = info['name']        // 获取,通过键取值必须加引号,
info.name 也是可以的
info['age'] = 20            // 修改
info['gender'] = 'male'        // 新增
delete info['age']            // 删除

if判断:

if (a == 1){  //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
    console.log('1111');
}
else{
   console.log('222');
}

多条件判断

 var a = 0;
    if(a > 1){
        // console.log('1111');
        // var hhhh = document.getElementById('d1');
        // hhhh.innerText = '彭于晏';
    }else if(a<1){

        console.log('2222');
    }else {
        console.log('3333');
    }

运算符

> < == !=  >=  <=   ===  !==

var a = 2;
var b = '2';
a == b;  true  弱等于
a === b;  false  强等于
a != b;  false
a !== b;   true

算术运算

+  -  * / %   ++  --  
++ 自增 1  
-- 自减 1

var a = 2;
a++  先执行逻辑  在+1
++a  先+1 在执行逻辑

简单示例:
    if (++a === 4){
        console.log('xxx');
    }
    else{
        console.log('ooo');
    };

switch判断

var num = 200;
switch(num++){  参数必须是数字或者得到数字的算式
    case 10:
        console.log('未成年');
        break;
    case 18:
        console.log('成年');
        break;
    case 35:
        console.log('油腻老男人');
        break;
    case 100:
        console.log('....');
        break;
        
    #上面的case条件都不成立就执行default
    default:
        console.log('太大了');
};

异常捕获

try{
    console.log(xx);
}catch(e){
    console.log(e);
}
// 不管有没有异常都会执行finally
finally{
    console.log('sssss');
}

for循环

for (var i=0;i<100;++i){
    console.log(i);  
};

循环数组
    var d = [11,22,33];
    for (var i in d){
        if (d[i] === 22){
            continue;  //跳出本次循环
            // break; // 结束循环
        }
        console.log(i,d[i]);
    }
    for (var i=0;i<d.length;i++){
        console.log(i,d[i]);
    };
循环自定义对象--python字典
    for (var i in d){
        console.log(i,d[i]);  #不要用d.i来取值
    }

while

var a = 0;
while(a<5){
    a++;
    if (a===2){
      continue;
    }
    console.log(a);
}

转化

字符串转数字:
    var a = '11';
    parseInt(a);
    
    var a = '23abc';
    parseInt(a);   23
    var a = '11.11';
    parseFloat(a) -- 转换为浮点型
    
    var a = 'asdfabc';
    parseInt(a); -- NaN  -- not a number
    typeof NaN;  -- "number"
    NaN === NaN; -- false
    NaN == NaN; -- false
    
    
    数字转字符串
    var b = 20;
    String(b);

普通函数

function f1(a,b){
    return a+b;
}

执行: f1(1,2) -- 3

function f1(a,b){
    return a,b;
};

f1(1,2);
不能返回多个值:  2 如果返回多个值, 要用一个容器类型接收

 

匿名函数

var a = function (a,b){
    console.log('xxx');
}

var d = {'xx':'oo','f':function (a,b){
    console.log('xxx');
}};
执行:d.f(1,2);

自执行函数: 函数后面加括号

 (function () {
        alert('自执行函数!')
    })()

序列化: JSON

var d = {'a':'aa','b':18};
序列化:
    var d_json = JSON.stringify(d); //python  json.dumps(d);
    
反序列化:
    d_json = "{"a":"aa","b":18}"
    var reverse_json = JSON.parse(d_json);  //python  json.loads()

 

posted on 2020-07-01 16:09  fdsimin  阅读(153)  评论(0编辑  收藏  举报