分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

js补充

发布时间:2023-09-06 02:35责任编辑:郭大石关键词:js

运算符号

  1. 运算符(+,-,*,/,++,--,i++)

    i++ 与 ++i的区别:

       i++是先进行运算然后再自加1,而++i 是将i加了1之后参与运算

       2 比较运算符(> >= < <= != == === !==)

         == 与===的区别:

      == 是弱等于,===是强等于。==是不会校验数据的类型,直接进行比较。即数字与字符串也可以进行比较,但是实际生活不许我们这么做,所以相对与==,===用的次数会更比较多。以下,列举几行代码来解释。

1 == "1"

      可以看到浏览器返回给我们的是ture,但是实际上是不相等的

  3 逻辑运算符    

     && || ! #and,or,非(取反)!null返回true

 4 赋值运算符
    = += -= *= /= ?#n += 1其实就是n = n + 1
流程控制
  1 if-else 与if -else if -else
    if循环的格式为if(条件){结果}。
    如果只有两种情况的话可以用第一种,如果情况比较多建议用第二个。
var a = 10;if (a<5){ ???console.log(ture)}else{ ???console.log(false)}
var a = 10;if (a > 5){ ?console.log("a > 5");}else if (a < 5) { ?console.log("a < 5");}else { ?console.log("a = 5");}

  2 switch循环

    格式switch(条件)

        case 0 :结果

        break;

        default:结果

     其中case允许多个,但是每一个case之后都要加一个break。否则会继续往下判断。如果条件都不满足的话才会走default。case 必须是一个数字或者算式(结果是数字的公式)。

    实例:

var day=new Date().getDay();switch (day){case 0: ?x="Today it‘s Sunday"; ?break;case 1: ?x="Today it‘s Monday"; ?break;case 2: ?x="Today it‘s Tuesday"; ?break;case 3: ?x="Today it‘s Wednesday"; ?break;case 4: ?x="Today it‘s Thursday"; ?break;case 5: ?x="Today it‘s Friday"; ?break;case 6: ?x="Today it‘s Saturday"; ?break;default:   x="Looking forward to the Weekend"; }

   3 for 循环

  格式:for(条件){结果}

  

l1=[‘a‘,‘b‘,‘c‘,‘d‘]for (var i in l1){  console.log(i,l1[i])
}

  此时拿到的i是序号,当for循环循环自定义对象时,i拿到的是自定义对象的key值。

 l1={‘1‘:1,‘2‘:2}for (var i in l1){console.log(i,l1[i])}

    4 while循环

    格式while(条件){结果}

var i = 0;while(i<10){console.log(i);i++}

三元运算符

  格式   条件?结果1:结果2

var a =10;var b = 20;var c = a<b?"a小于b":"a大于b";c;

函数

  普通函数

    格式 function 函数名(参数){结果}

    ruturn 返回值时不能一次性返回两个

var a =10;var b = 20;function f1(a,b){console.log (a+b)};f1(a,b)

  匿名函数

     格式 var 函数名 = function(参数){结果}

var f1 = function(a,b){console.log(a+b)};f1(30,79)

  匿名函数缩写

    格式  var 函数名 = (参数) =>(结果)

var f2 = (a,b) =>{console.log(a+b)};f2(10,20)

  自执行函数

     格式(function(参数){结果})()

  

注意:

    函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。

函数的全局变量和局部变量

  局部变量

      在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。

  全局变量:

      在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

  变量生存周期:

      JavaScript变量的生命期从它们被声明的时间开始。

      局部变量会在函数运行以后被删除。

      全局变量会在页面关闭后被删除。

作用域

    首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。

    几个例子:

    1.

var city = "BeiJing";function f() { ?var city = "ShangHai"; ?function inner(){ ???var city = "ShenZhen"; ???console.log(city); ?} ?inner();}f(); ?//输出结果是? ---> ShenZhen
var city = "BeiJing";function Bar() { ?console.log(city);}function f() { ?var city = "ShangHai"; ?return Bar;}var ret = f();ret(); ?// 打印结果是?---> BeiJing
var city = "BeiJing";function f(){ ???var city = "ShangHai"; ???function inner(){ ???????console.log(city); ???} ???return inner;}var ret = f();ret(); ??---> ShangHai

对象 

  创建对象

var person=new Object(); ?// 创建一个person对象person.name="Alex"; ?// person对象的name属性person.age=18; ?// person对象的age属性

Data对象

//方法1:不指定参数var d1 = new Date(); //获取当前时间console.log(d1.toLocaleString()); ?//当前时间日期的字符串表示//方法2:参数为日期字符串var d2 = new Date("2004/3/20 11:12");console.log(d2.toLocaleString());var d3 = new Date("04/03/20 11:12"); ?#月/日/年(可以写成04/03/2020)console.log(d3.toLocaleString());//方法3:参数为毫秒数,了解一下就行var d3 = new Date(5000); ?console.log(d3.toLocaleString());console.log(d3.toUTCString()); ??//方法4:参数为年月日小时分钟秒毫秒var d4 = new Date(2004,2,20,11,12,0,300);console.log(d4.toLocaleString()); ?//毫秒并不直接显示
// Data对象的一些方法 
var d = new Date(); //getDate() ????????????????获取日//getDay () ????????????????获取星期 ,数字表示(0-6),周日数字是0//getMonth () ??????????????获取月(0-11,0表示1月,依次类推)//getFullYear () ???????????获取完整年份//getHours () ??????????????获取小时//getMinutes () ????????????获取分钟//getSeconds () ????????????获取秒//getMilliseconds () ???????获取毫秒//getTime () ???????????????返回累计毫秒数(从1970/1/1午夜),时间戳

json 对象

var str1 = ‘{"name": "chao", "age": 18}‘;var obj1 = {"name": "chao", "age": 18};// JSON字符串转换成对象var obj = JSON.parse(str1); // 对象转换成JSON字符串var str = JSON.stringify(obj1);

RegExp对象

  这个比较常用,可以多练习一下正则表达式

//RegExp对象//创建正则对象方式1// 参数1 正则表达式(不能有空格)// 参数2 匹配模式:常用g(全局匹配;找到所有匹配,而不是在第一个匹配后停止)和i(忽略大小写)// 用户名只能是英文字母、数字和_,并且首字母必须是英文字母。长度最短不能少于6位 最长不能超过12位。// 创建RegExp对象方式(逗号后面不要加空格),假如匹配用户名是只能字母开头后面是字母加数字加下划线的5到11位的var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$"); //注意,写规则的时候,里面千万不能有空格,不然匹配不出来你想要的内容,除非你想要的内容本身就想要空格,比如最后这个{5,11},里面不能有空格// 匹配响应的字符串var s1 = "bc123";//RegExp对象的test方法,测试一个字符串是否符合对应的正则规则,返回值是true或false。reg1.test(s1); ?// true// 创建方式2,简写的方式// /填写正则表达式/匹配模式(逗号后面不要加空格)var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/; reg2.test(s1); ?// true注意,此处有坑:如果你直接写一个reg2.test(),test里面啥也不传,直接执行,会返回一个true,用其他的正则规则,可能会返回false,是因为,test里面什么也不传,默认传的是一个undefined,并且给你变成字符串undefined,所以能够匹配undefined的规则,就能返回true,不然返回false// String对象与正则结合的4个方法var s2 = "hello world";s2.match(/o/g); ????????// ["o", "o"] ????????????查找字符串中 符合正则 的内容 ,/o/g后面这个g的意思是匹配所有的o,s2.search(/h/g); ???????// 0 ?????????????????????查找字符串中符合正则表达式的内容位置,返回第一个配到的元素的索引位置,加不加g效果相同s2.split(/o/g); ????????// ["hell", " w", "rld"] ?按照正则表达式对字符串进行切割,得到一个新值,原数据不变s2.replace(/o/g, "s"); ?// "hells wsrld" ?????????对字符串按照正则进行替换// 关于匹配模式:g和i的简单示例var s1 = "name:Alex age:18";s1.replace(/a/, "哈哈哈"); ?????// "n哈哈哈me:Alex age:18"s1.replace(/a/g, "哈哈哈"); ????// "n哈哈哈me:Alex 哈哈哈ge:18" ?????全局匹配s1.replace(/a/gi, "哈哈哈"); ???// "n哈哈哈me:哈哈哈lex 哈哈哈ge:18" ?不区分大小写// 注意事项1:// 如果regExpObject带有全局标志g,test()函数不是从字符串的开头开始查找,而是从属性regExpObject.lastIndex所指定的索引处开始查找。// 该属性值默认为0,所以第一次仍然是从字符串的开头查找。// 当找到一个匹配时,test()函数会将regExpObject.lastIndex的值改为字符串中本次匹配内容的最后一个字符的下一个索引位置。// 当再次执行test()函数时,将会从该索引位置处开始查找,从而找到下一个匹配。// 因此,当我们使用test()函数执行了一次匹配之后,如果想要重新使用test()函数从头开始查找,则需要手动将regExpObject.lastIndex的值重置为 0。// 如果test()函数再也找不到可以匹配的文本时,该函数会自动把regExpObject.lastIndex属性重置为 0。var reg3 = /foo/g;// 此时 regex.lastIndex=0reg3.test(‘foo‘); // 返回true// 此时 regex.lastIndex=3reg3.test(‘xxxfoo‘); // 还是返回true// 所以我们在使用test()方法校验一个字符串是否完全匹配时,一定要加上^和$符号,把匹配规则写的确定一些,尽量不用上面这种的写法/xxx/。// 注意事项2(说出来你可能不信系列):// 当我们不加参数调用RegExpObj.test()方法时, 相当于执行RegExpObj.test(undefined),然后将这个undefined又转为字符串"undefined",去进行匹配了, 并且/undefined/.test()默认返回true。var reg4 = /^undefined$/;reg4.test(); // 返回truereg4.test(undefined); // 返回truereg4.test("undefined"); // 返回trueRegExp相关

Math对象

Math.abs(x) ?????返回数的绝对值。exp(x) ?????返回 e 的指数。floor(x) ???小数部分进行直接舍去。log(x) ?????返回数的自然对数(底为e)。max(x,y) ???返回 x 和 y 中的最高值。min(x,y) ???返回 x 和 y 中的最低值。pow(x,y) ???返回 x 的 y 次幂。random() ???返回 0 ~ 1 之间的随机数。round(x) ???把数四舍五入为最接近的整数。sin(x) ?????返回数的正弦。sqrt(x) ????返回数的平方根。tan(x) ?????返回角的正切。

  

js补充

原文地址:https://www.cnblogs.com/tianhognwei/p/10553813.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved