首页 > 其他分享 >【React工作记录一百零八】前端小知识点扫盲笔记记录9

【React工作记录一百零八】前端小知识点扫盲笔记记录9

时间:2023-06-16 19:04:52浏览次数:43  
标签:function 知识点 console log 记录 React str var prototype

前言

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣带你进入前端巅峰交流群 今天继续对前端知识的小结

如何截取字符串

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>substr</title>
</head>

<body>
  <script>
    
    //start 是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1
    var str = "abcdefghij";
    //substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。
    console.log("(1,2): " + str.substr(1, 2)); // (1,2): bc
    //负数表示strLength + start 10
    console.log("(-3,2): " + str.substr(-3, 2)); // (-3,2): hi
    console.log("(-3): " + str.substr(-3)); // (-3): hij
    console.log("(1): " + str.substr(1)); // (1): bcdefghij
    console.log("(-20, 2): " + str.substr(-20, 2)); // (-20, 2): ab
    console.log("(20, 2): " + str.substr(20, 2)); // (20, 2):截取为空
  </script>
</body>

</html>

如何用javascript获取所有的checkbox值220422

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

		<title>js</title>
	</head>

	<script language="javascript">
		function aa() {
			var r = document.getElementsByName('r')

			for (var i = 0; i < r.length; i++) {
				if (r[i].checked) {
					console.log(r[i].value + ',' + r[i].nextSibling.nodeValue)
				}
			}
		}
	</script>

	<body>
		<form name="form1" method="post" action="">
			<input type="checkbox" name="r" value="1" />a<br />
			<input type="checkbox" name="r" value="2" />b<br />
			<input type="checkbox" name="r" value="3" />c<br />
			<input type="checkbox" name="r" value="4" />d<br />
			<input type="checkbox" name="r" value="5" />e<br />
			<input type="checkbox" name="r" value="6" />f<br />
			<input type="checkbox" name="r" value="7" />g<br />
			<input type="checkbox" name="r" value="8" />h<br />
			<input type="checkbox" name="r" value="9" />i<br />
			<input type="checkbox" name="r" value="10" />j<br />
			<br />
			<input type="button" onclick="aa()" value="button" />
		</form>
	</body>
</html>

如果ul下面有1000个li

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    window.onload = function(){
      var ul=document.getElementById("ul")
     ul.onclick = function(e){
      e=window.event?window.event:e;
      var who=e.target?e.target:e.srcElement;
      console.log(who.innerHtml)
     }
    }
  </script>
</body>
</html>

字符串反转

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        
        function myreserve(arr){
            // var arr=new Array();
            for(var i=0;i<arr.length/2;i++){
                var temp=arr[i]
                arr[i]=arr[arr.length-i-1]
                arr[arr.length-i-1]=temp
            }
            return arr
        }
        console.log(myreserve(["1","2","3","4","5"]))
        //[5,4,3,2,1]
    </script>
</body>
</html>

宏任务和微任务

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>宏任务和微任务</title>
</head>

<body>
  <script>
    console.log(100)
    setTimeout(() => {
      console.log(200)
    })
    Promise.resolve().then(() => {
      console.log(300)
    })
    console.log(400)
    // 答案为: 100 400 300 200
    // setTimeout是个宏任务,而pormise是个微任务,微任务要比宏任务执行的要早
  </script>
</body>

</html>

实现一个删除字符串前后空格的方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //去除前后空格
    String.prototype.deletePlace=function(){
      var str=this
      while(str[0]===" "){
        str.substring(1)
      }
      while(str[str.length-1]===" "){
        str.substring(0,str.length-1)
      }
      return str
    }

    
  </script>
</body>
</html>

寄生式继承

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>寄生式继承</title>
	</head>
	<body>
		<script>
			function object(obj) {
				function F() {}
				F.prototype = obj
				return new F()
			}

			function createAnother(original) {
				var clone = object(original) // 通过调用 object() 函数创建一个新对象
				clone.sayHi = function () {
					// 以某种方式来增强对象
					console.log('我是歌谣')
				}
				return clone // 返回这个对象
			}

			var person = {
				name: 'Nicholas',
				friends: ['Shelby', 'Court', 'Van'],
			}
            //调用方法
			var anotherPerson = createAnother(person)
			anotherPerson.sayHi() //"我是歌谣"
            //原型链继承多个实例的引用类型属性指向相同,存在篡改的可能。无法传递参数
		</script>
	</body>
</html>

寄生组合式继承

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>寄生组合式继承</title>
	</head>
	<body>

        
		<script>
			function inheritPrototype(Son, Father) {
				var prototype = Object.create(Father.prototype) // 创建对象,创建父类原型的一个副本
				prototype.constructor = Son // 增强对象,弥补因重写原型而失去的默认的constructor 属性
				Son.prototype = prototype // 指定对象,将新创建的对象赋值给子类的原型
			}
0
			// 父类初始化实例属性和原型属性
			function Father(name) {
				this.name = name
				this.colors = ['red', 'blue', 'green']
			}
			Father.prototype.sayName = function () {
				console.log(this.name)
			}

			// 借用构造函数传递增强子类实例属性(支持传参和避免篡改)
			function Son(name, age) {
				Father.call(this, name)
				this.age = age
			}

			// 将父类原型指向子类
			inheritPrototype(Son, Father)

			// 新增子类原型属性
			Son.prototype.sayAge = function () {
				console.log(this.age)
			}
			var instance1 = new Son('xyc', 23)
			var instance2 = new Son('lxy', 23)

			instance1.colors.push('2') // ["red", "blue", "green", "2"]
            console.log(instance1)
			instance1.colors.push('3') // ["red", "blue", "green", "3"]
            console.log(instance1)
		</script>
	</body>
</html>

总结

我是歌谣 最好的种树是十年前 其次是现在 加油 歌谣

标签:function,知识点,console,log,记录,React,str,var,prototype
From: https://blog.51cto.com/u_14476028/6501611

相关文章

  • 【React工作记录一百零九】前端小知识点扫盲笔记记录10
    前言我是歌谣放弃很容易但是坚持一定很酷微信公众号关注前端小歌谣带你进入前端巅峰交流群今天继续对前端知识的小结对称数<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"/> <metahttp-equiv="X-UA-Compatible"content="IE=edge"/>......
  • 利用react-resizable实现antd表格头宽度可以拖拽调节
    1.创建ResizeAbleTable文件夹1.1index.jsimport{Table}from"antd4"importReact,{useEffect,useState}from"react"import{Resizable}from"react-resizable"import"./index.less"/***可伸缩列*@paramprops*@retur......
  • 记录--设计一个可选择不连续的时间范围的日期选择器
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助npm包:sta-datepicker效果图 需求普通的时间选择器要么只能单选,要么只能选范围,不可以随意选择若干个时间,同时大多数现成的时间选择器选择结束会收起来,很不方便。现在需求如下1、可以自己控制展开收起2、可......
  • 过滤实现条件查询记录:
    publicList<TbRemouldAirVO>airQueryByMap(List<TbRemouldAirVO>airVO,Map<String,String>map){//1.改造时间if(!StringUtils.isEmpty(map.get("remouldTimeAir"))){airVO=airVO.stream().filter(x->Objects.equals......
  • 关于vue2路由跳转问题记录
    1.vue路由间跳转和新开窗口的方式(query,params)路由间跳转配置:query方式:参数会在url中显示this.$router.push({path:'路由地址',query:{msg:'helloworld'}})params方式:传参数据不会在导航栏中显示,需要配合路由的name属性使用。this.$......
  • “红帽认证”考试,这些知识点必须掌握!
    话不多说直接上干货,本篇文章适用于备考Linux红帽认证的同学。 man命令中常用按键以及作用man命令中帮助信息的结构以及意义reboot命令reboot命令用于重启系统,输入该命令后按回车键执行即可。[root@linuxprobe~]#rebootpoweroff命令poweroff命令用于关闭系统,输入该命令后按回车键......
  • AJAX常用知识点及应用
    一、概念相关AsyncJavaScriptAndXML是JS通过异步方式啦获取响应并且局部更新页面二、XHLHttpRequest【在AJAX中被大量使用】是一个API,挂在window上。为客户端提供了在客户端和服务器之间进行数据传输的功能通过URL来获取数据,并且不会使页面整个刷新三、原生JS-------......
  • Markdown语法学习记录
    ##小记markdown语法是写博客所需要的基本的语法,而且也比较容易掌握,以下是我个人学习的基础的语法。##标题一共有六级标题,先说一级标题一级标题的语法是#+空格+标题二级标题的语法是##+空格+标题 ......想创建多少级的标题就在前面加多少个#号##字体**粗体***斜体*......
  • 2023 6月记录
    6.6[CF1830E]BullySort很离谱的结论题!这个操作很奇怪,但是它有一个重要的性质:一个数永远只会向一个方向移动。考虑这个操作的过程,每次其实是将\(p_i\neqi\)的最大的\(i\)归位,所以如果一个数向右移,它以后就不会向左移。而一个数如果向右移,那么它一定是一个后缀\(min\),而......
  • 记录下闪回工具binlog2sql使用
    1查看系统[root@10-0-0-244~]#cat/etc/centos-releaseRockyLinuxrelease8.7(GreenObsidian)2下载MySQL2.1更新下版本[root@10-0-0-244~]#dnfupdateFailedtosetlocale,defaultingtoC.UTF-8Lastmetadataexpirationcheck:2:01:36agoonWedJun1403:59:26......