• js--javascript学习


    js -- javascript

    ECMAscript5

    ECMAscript6 -- vue.js react ..

    由三个部分组成

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

    js代码引入方式

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

    js语言基础

    变量

    var a = 10;  变量定义 var 变量名;
    

    数据类型

    number类型(整数,浮点数)

    var n = 11;
    var n2 = 11.11;
    js代码注释  // js代码
    
    查看数据类型 typeof 变量名;
    	typeof n; -- number类型
    	
    变量声明,但没有赋值的时候,变量的值为undefined
    
    

    string类型(字符串)

    示例:
     var a = 'alexsb';
    var a = new String('ss');  typeof a; -- "string"
    字符串的操作方式
    var s = '诱色可餐徐茂洁';
    索引取值:  s[1] -- '色'
    移除两端空格: s.trim();   s.trimLeft(); s.trimRight();
    
    var value = name.charAt(index) 			// 根据索引获取字符
    	示例: var s = 'hello'; -- s.charAt(4); -- 'o'
    var value = name.substring(start,end) 	// 根据索引获取子序列,切片
    	示例: s.substring(1,3); -- "el"
    
    

    布尔类型(boolean类型)

    var a = true;
    var b = false;
    

    undefined和null类型

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

    数组(array)

    var name = [11,22,33];
    
    数组常用方法:
    names[0]						// 索引,索引也是从0开始的
    
    names.push(ele)     			// 尾部追加元素
    	示例:a.push('xx'); --  [11, 22, 33, "xx"]
    var ele = names.obj.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()         			// 对原数组进行排序
    	很尬!
    	需要自己定义规则:
    		function compare(a,b){
               return a - b;  当大于0时,两个数据换位置
            };
            使用: a.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']			// 删除
    

    html特殊符号

    html特殊符号
    	&nbsp; 空格
    	&gt;  >
    	&lt;  <
    
    list-style: none;和ul标签的type='none'是一样的
    

    流程控制

    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;
        default:
            console.log('太大了');
    };
    

    异常捕获

    try{
    	console.log(xx);
    }catch(e){
    	console.log(e);
    }
    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);
    }
    
    

    js的基础数据类型都有布尔值属性, []--false 0,{},'',undefined,null,NaN

    字符串转数字:
    	var a = '11';
    	parseInt(a);
    	
    	var a = '23abc';
    	parseInt(a);   23
    	
    	var a = 'asdfabc';
    	parseInt(a); -- NAN  -- not a number
    	typeof NaN;  -- "number"
    	NaN === NaN; -- false
    	NaN == NaN; -- false
    
    

    函数

    普通函数

    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('自执行函数!')
        })()
    
    

    序列化

    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);
    
    

    BOM对象 浏览器对象模型

    弹框

    alert('xx');
    confirm('are you sure?')
    
    

    location对象

    location.href;  获取当前页面的地址
    location.href = 'http://www.baidu.com'; 跳转到这个网址上
    location.reload();  刷新当前页面
    
    

    计时器

    第一种:一段时间之后执行某个任务
    	设置:var t = setTimeout(function(){confirm('你满18岁了吗?')},5000);
    		var t = setTimeout("console.log('xxx')",1000);
    		t就是浏览器用来记录你的计时器的标识数字
    	清除:clearTimeout(t)
    第二种:每隔一段时间执行某个任务
    	设置:var t = setInterval(function(){confirm('弹个框!!')},3000);
    	清除:clearInterval(7);
    
    

    DOM对象

    HTML文档(.html文件)

    直接查找选择器

    html代码:
    	<div class="c1" id="d1"></div>
    	<div class="c1 c2" id="d2"></div>
    css代码:
    	   .c1{
                background-color: green;
                height: 100px;
                 100px;
            }
            .c2{
                background-color: red;
                /*height: 100px;*/
                /* 100px;*/
                color:red;
            }
    
    按标签名查找: var divEle = document.getElementsByTagName('div');
    按id值查找:  var d1 = document.getElementById('d1');
    			示例: d1.style.height = '600px';
    按类值查找:var a = document.getElementsByClassName('c1');
    
    

    间接查找选择器

    var div1 = document.getElementsByClassName('c1')[0]; 
    div1.nextElementSibling.style.color = 'red';  找下一个兄弟标签,并改了色
    div1.previousElementSibling;  找上一个兄弟
    div1.firstElementChild;  找第一个儿子
    div1.lastElementChild;  找最后一个儿子
    div1.children;  找所有儿子,是一个数组
    div1.parentElement;  找到自己的父级标签
    
    

    文本操作

    innerText
    	获取文本:
    		var a = document.getElementById('jd')
    		a.innerText;  只获取文本内容
        设置文本:
        	a.innerText = '<a href="">校花</a>';不能识别标签,单纯的文本内容显示
    innerHTML
    	获取文本	
    		var d = document.getElementsByClassName('c1')[0];
    		d.innerHTML;  获取的内容包含标签
    	设置文本:
    		d2.innerHTML = '<a href="">校花</a>'; 能够识别标签,生成标签效果
    
    
    

    value值操作

    input标签
    	html:
    		<input type="text" name="username" id="username" >
    	示例:
    		var inp = document.getElementById('username'); 找到标签
    		inp.value;  获取值
    		inp.value = '200块!';  修改值
    
    
    

    js补充

    class类值操作

    var div1 = document.getElementById('d1');
    div1.classList;  // 获取标签类值
    div1.classList.add('c2'); // 添加类值
    div1.classList.remove('c3'); // 删除类值
    div1.classList.toggle('c3');  // 有就删除,没有就添加
    var t = setInterval("div1.classList.toggle('c3')",1000);  //定时器添加
    
    

    HTML的label标签补充

        <label >用户名: 
            <input type="text" name="username" id="username">
        </label>
        <label for="password">密码: </label>
        <input type="password" name="password" id="password">
    
    

    button补充

    普通按钮,没有提交效果
    <input type="button">
    <button type="button">注册</button>
    
    下面两个能够提交form表单数据
    <input type="submit" value='登录'>
    <button type="submit">注册</button>
    
    
    
  • 相关阅读:
    搭建angularjs API文档站点
    Web网站数据”实时”更新设计
    3kb jQuery代码搞定各种树形选择。
    阿里妈妈自动登录程序
    Android中RelativeLayout属性详细说明
    jQuery选择器总结
    ajax页面加载进度条插件
    jquery ajax 方法及各参数详解
    使用jQuery加载html页面到指定的div
    C#中无边框窗体移动
  • 原文地址:https://www.cnblogs.com/Nayears/p/12107162.html
Copyright © 2020-2023  润新知