js入门

1 篇文章 0 订阅

javascript 入门
作用: 验证发往服务器端的数据,增强用户体验度
历史:…
js的使用方式:
1.行内
2.内部
页面中的任意地方,定义一对script标签对,其中定义js代码
3.外部
外部定义js文件,在页面中的script标签的src属性中定义js的位置
注意:不能使用一个script标签,同时定义js代码并且引入外部文件,无效
js在html中的位置:可以在任意位置
1.head中 便于后期维护—配合window.onload使用
2.body结束之前 防止没有加载的内容获取不到

 <div id="box">AI只能电饭煲</div>
    <button type="button" onclick="console.log('点我一下,让你加入百度,改变世界!!!,给他们老板泼水!!!')">普通按钮</button>
    <script>
        alert("345676889");
        console.log(document.getElementById("box"));
    </script>
 <meta charset="UTF-8">
    <title></title>
    <!--内部使用js-->
    <script>
        alert("123465");
        //待页面加载完成之后执行的内容
        window.onload=function(){
            console.log(document.getElementById("box"));
        }
    </script>
    <!--引入外部js文件-->
    <script src="js/first.js"></script>

js中定义变量:
* 使用关键字var定义,因为js是一门弱类型语言,动态语言
* 声明的同时赋值,先声明后赋值
* 注意:
* 1.js中的变量,不赋值存在默认值undefined,声明了没赋值
* 2.如果变量没有定义,js中依旧无法使用
* 3.同时定义多个变量,可以一个语句中打印,使用,进行分隔
* 4.变量的作用域提升问题
* 只要有变量,这个变量只有变量的声明才会被提升到当前作用域的最上面 var a;赋值不会被提升
* 5.js中的变量可以存储任意类型的数据
* 6.js可以省略var关键字定义变量,但是这个变量不会发生作用域提升,提升作用域只会找var关键字

 var a;
        console.log(a); //undefined
        a="haha";
        console.log(a);

        var  x=3,y=4,z="呵呵";
        console.log(x,y,z);

        var arr=[1,2,3,4];
        var fn=function(){

        };

        var obj={};

        xiaoxin="蜡笔小新";
        console.log(xiaoxin);

数据类型:
* 基本数据类型
* 数值型 Number-----蓝色
* 整数,小数,正数,负数
*
* NaN : NOT A NUMBER 不是一个数字
* 如何获取NaN类型数据:
* 1.自己赋值
* 2.运算无法得到正确结果
*
* 字符串 String-----黑色
* “”|’’ 其中存放任意字符定义字符串
*
* 布尔 Boolean-----蓝色
* true|false
*
* Null 空 -----灰色
* 如何获取Null类型数据:
* 1.自己赋值
* 2.没有,回去不到,就是null
*
* Undefined 未定义
* 如何获取Undefined类型数据:
* 1.自己赋值
* 2.声明没有赋值
*
* 复合数据类型
* 对象
* 一切皆对象
* {} 中定义对象
* 对象中的数据以键值对的形式存在
* 多个键值对之间使用,进行分隔
* 称键值对为对象的属性
* key–满足标识符的命名要求
* value–任意类型的数据
* key和value之间使用:连接
* 所有的key默认在底层都是字符串,标准的标识符的写法key可以省略""

 var num1=1.1;
        var num2=NaN;
        var num3=5/'ABC';
        console.log(num1);
        console.log(num2);
        console.log(num3);

        var str1="";
        var str2=" ";
        var str3="123";
        console.log(str1);
        console.log(str2);
        console.log(str3);

        var flag=false;
        console.log(flag);

        var ns1=null;
        console.log(ns1);

        var person={
            name:'zhangsan',
            age:18,
            123:false,
            "abc 123":123
        };
        console.log(person);

        function f(){
            console.log("我是一个函数");
        }
        f();

对象类型不参与类型转换
1.显示类型转换
任意类型都是可以转为String,boolean,Number
通过这样的三个函数进行类型转换
String(“数据”) 返回值字符串类型的数据
Number(数据)
Boolean(数据)
把不同类型的特殊数据拿以上三个方法进行测试,总结规律
2.隐式类型转换
不是为转换类型,而是为了进行运算等操作,不得不转换类型的

 console.log(Number(''));    //0
        console.log(Number(''));    //0
        console.log(Number('123')); //123
        console.log(String(0));
        console.log(String(false));
        console.log(Boolean(2,2));
        console.log(Number("123anc"));  //NaN

        console.log(1+'');  //作为字符串连接符使用
        console.log(1-'2'); //先把''转为数字再运算
  console.log(Number(''));    //0
        console.log(Number(''));    //0
        console.log(Number('123')); //123
        console.log(String(0));
        console.log(String(false));
        console.log(Boolean(2,2));
        console.log(Number("123anc"));  //NaN

        console.log(1+'');  //作为字符串连接符使用
        console.log(1-'2'); //先把''转为数字再运算

console.log(1);推荐使用console.log进行测试
* js中不同类型的数据可以参数运算, 隐式类型转换,自动转为数值型
*
* + 字符串连接符
*
* = == === 区别
* = 赋值
* == 比较内容是否相等
* === 比较类型和内容是否全部相等
* 先比较类型,类型相等才比较内容
*
*
* 逻辑运算符:
* java中两边的操作数只能为booelan类型
* js中两边的操作数可以为其他类型
* 如果两边的操作数为其他类型,非boolean类型的数据出现的时候
* 结果肯定为其中一个操作数之一
* && 第一个操作数转为boolean,如果为false,结果为第一个操作数
* 如果为true,结果为第二个操作数
* || 第一个操作数转为boolean,如果为false,结果为第二个操作数
* 如果为true,结果为第一个操作数
*
* {} 块
* java中{}作为作用域,js中没有作用域的作用,只有语义化的概念
* js中只有函数是左右域

 console.log(1);
        console.info(1);
        console.error(1);
        console.warn(1);

        console.log(1+true);
        console.log(2/'a');
        console.log(2/null);

        console.log(Number(null));
        console.log("------"+Number("false"));

        console.log(1 == '1');
        console.log(false == "false");  //false
        console.log(false == 0); //true

        console.log(1 === '1');  //false
        console.log(false === 0); //false

        console.log( 3 > '5');

        console.log( "---------------------------------------");
        //! 非 取反
        console.log( !true);
        console.log( !!true);
        console.log( !!!true);
        console.log( !1+","+Boolean(1));
        console.log( !undefined+","+Boolean(undefined));
        console.log( Boolean(null));

        console.log( "--------------------&&-------------------");
        console.log(true && 1);
        console.log('' && 1);
        console.log(true || 1);

        console.log( "--------------------{}-------------------");
        console.log(a);
        {
            var a=3;
        }
        console.log(a);

数组:
存储任意个,任意类型的数据,长度可变,索引
数组的构建方式:
1) new Array(); 构建一个空数组
2) new Array(数据值1,2,3,4…); 创建的同时就赋值
2) [1,2,3,4…]; 字面量的创建方式—推荐
根据索引操作数组中的数据 数组名[索引] 索引从0开始
最后一个数据的索引 : length-1
length 属性 数组的长度
当数组的索引非正常形式,作为自定义数组属性存在

数组的常用方法:
slice 截取(切片)数组,原数组不发生变化
参数1个 从参数位置开始截取到最后
参数2个 从第一个参数位置开始,到第二个参数位置结果,不包含结束位置
原数组不发生改变
splice 剪接数组,原数组变化,可以实现前后删除效果
参数1个 从参数位置开始截取,到最后
参数2个 从参数1开始截取,截取第二个参数个数据
参数3,到n个 从参数1开始截取,截取第二个参数个数据,用第三个参数开始的参数作为替换的数据放在原数组的位置
原数组发生改变,变为剩下的数据

  var arr1=new Array();
        arr1[0] =3;
        arr1[1] ='哈哈';
        arr1[2] = false;
        console.log(arr1);

        var arr2=new Array(null,undefined,1,'');
        console.log(arr2);
        //推荐
        var arr3=['white','red',undefined,'green','yellow'];
        console.log(arr3);
        console.log(arr3.length);
        arr3.length=10;
        console.log(arr3.length);
        console.log(arr3);
       // arr3.length=2;
       //console.log(arr3);

        //遍历
        // 普通for循环
        for(var i=0;i<=arr3.length-1;i++){
            console.log(arr3[i])
        }
        console.log(i);

        //for in   注意:空的位置undefined值遍历不到
        for(var n in arr3){
            console.log(arr3[n]);
        }

        //foreach  注意:空的位置undefined值遍历不到
        arr3.forEach(function(ele,index,arr){
            console.log(ele+","+index+","+arr);
        });

        arr3["哈哈"]="haha";
        console.log(arr3["哈哈"]);
         console.log(arr3.slice(2));
        console.log(arr3);

        console.log(arr3.slice(2,4));
        console.log(arr3);


        console.log(arr3.splice(2,4,'1','2','3'));
        console.log(arr3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值