2021/3/2 被自己坑到的一天,大家都开始春招了,我却浪费了假期一个月。。。加油吧。弥补回来
leetcode题解:
12. 整数转罗马数字
https://leetcode-cn.com/problems/integer-to-roman/
有两种做法:
- 硬性拆解,直接制作出大表格,按照表格来查找检索。
- 贪心算法
-
强解
根据总结推理得来的规律。 -
贪心
先用大的,直到大的不够用才转到小的
nums=[1000,900,500,400,100,90,50,40,10,9,5,4,1],
chars=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
13. 罗马数字转整数
https://leetcode-cn.com/problems/roman-to-integer/
-
我的题解比较繁琐,直接就按照上一题的nums,chars数组来比较做,chars变成map,但是没想太多,map的value仍为数组下标。先是对比index和index+1位置的组合是否存在,存在就result加上对应的数,不存在就进行一对一相加。
-
在简洁点的做法,就是直接将map(罗马数字,对应的二进制数字)这样写,直接就可以加上map.has('字符')。
链接
四数之和不会,还有判断字符串reg的也不会
牛客网做题
-
JavaScript的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型):
基本类型:String、Number、Boolean、Null、Undefined、Symbol
引用类型:Object、Array、Function -
只有""、0、NaN、null、undefined变Boolean值是false
-
toPrecision() 方法返回指定长度的数值字符串。
toPrecision() 方法以指定的精度返回该数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。注意这里是可以有四舍五入的!!!
对比toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字
1.调用对象未声明的属性会undifned
var user={};
console.log(user.name);//undifned
2.使用未赋值只声明的基本数据类型会undifned
var one;
console.log(one);//undifned
3.使用未声明的变量会报错
console.log(two);//new_file.html:15 Uncaught ReferenceError: two is not defined
dom2规定的事件流包括3个阶段:①事件捕获,②处于目标阶段(事件处理 ),③事件冒泡阶段。
- var a的时候进行了变量提升,但是要执行到那一步才会真的赋值。即使有的时候先提升了变量,但还是得等到顺序下来财富值,仅仅是单纯的声明了而已。而使用未赋值只声明的基本数据类型会undifned
console.log(1/0)的话值是:Infinity,所以isNaN(1/0)返回的是false,但是isNaN(0/0)返回的就是true
4. console.log(0 in [1])---->true
console.log(1 in [1])---->false
in操作符,对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。
是指index下标。
5. 1 && 2 > 1,先判断右边的表达式,2>1返回true。1 && true返回的结果也是true。
6. flash和js通过什么类如何交互?:ExternalInterface
Flash提供了ExternalInterface接口与JavaScript通信
两个方法:call和addCallback
作用:call让Flash调用js里的方法,addCallback是用来注册flash函数让js调用。
-
关于身份证号(以15位为准)
isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
6位地区编码 4位年份 2位月份 2位日数 4位校检码(已经过时) -
({} + 'b' > {} + 'a')返回值是
"[object Object]b">"[object Object]a"
true -
Math.max(args...)传入参数是任意数量的值,参数是Number类型,可以是小数,整数,正数,负数或者是0.如果不是上面所述类型就会返回NaN.所以不能是数组
所以想要寻找arr中的最大值的话
Math.max(arr[0], arr[1], arr[2], arr[3])
Math.max.call(Math, arr[0], arr[1], arr[2], arr[3])
Math.max.apply(Math,arr)
-
@import用于引用css;
import可用于引用js -
parseInt会先把数字转成字符串,然后再把字符串转数字,所以parseint本身就是隐式转换
-
三元运算符也是隐式转换,先是变成Boolean值,然后变成对应值。
几个常见的事件的方法
preventDefault() 取消事件默认行为,如阻止点击提交按钮时对表单的提交(本题中click并没有什么默认行为)
stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用,影响当前的事件***stopPropagation() 取消事件冒泡,不影响事件***
cancelBubbe() 取消事件冒泡
returnValue() 取消事件默认行为
-
全局方法:
编码相关:
escape()、unescape()、encodeURI()、decodeURI()、
encodeURIComponent()、decodeURIComponent()
数据处理:
Number()、String()
数字相关:
isFinite()、isNaN()、parseFloat()、parseInt()
特殊:
eval() -
判断对象myObj是否存在:
前提是myobj是一个对象,只是存在与不存在的问题,几种表示方法:
1、!obj
2、!window.obj
3、typeof myObj == "undefined(判断对象是否有定义,已定义未赋值,返回true)
4、myObj == undefined(已定义未赋值。返回true)
5、myObj === undefined (已定义未赋值,返回true)
6、!this.hasOwnProperty('myObj'))(判断是否为顶层对象的一个属性)
7、myobj == null(注意null与undefined的区别,ull指的是已经赋值为null的空对象,即这个对象实际上是有值的,而undefined指的是不存在或没有赋值的对象。)

浙公网安备 33010602011771号