一、三目表达式含义是什么?
三目表达式是一种简化if-else语句的语法结构,它的含义是根据一个条件的真假来返回两个不同的值之一。它的基本语法结构如下:
```
条件表达式 ? 表达式1 : 表达式2
```
其中,条件表达式的值为真时返回表达式1的值,否则返回表达式2的值。可以看作是if-else语句的简写形式。三目表达式常用于简化代码并提高代码的可读性。例如,以下两段代码实现的功能相同:
if (a > b) {
max = a;
} else {
max = b;
}
max = (a > b) ? a : b;
第二种写法使用了三目表达式,可以简化代码并提高可读性。
二、js 正则表达式?
在JavaScript中,正则表达式通常用于两个字符串方法:search()和replace()。
search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
三、js什么是表达式?
一、表达式:
表达式就是 由运算符参与,并且能计算出最终结果的就是一个表达式
二、js中的运算符号:
在我们的程序中会用到很多计算。
包括数学运算和逻辑运算。这个计算中使用到的符号称之为运算符号。
例如:+ - * / == < >
1.算数运算符
+ - * / %(模) ++自增 --自减
计算规则和数学计算规则是一样的,顺序也是一样。
先乘除 后加减.
++ -- 使用注意:
1.只能给变量使用,不能给常量使用
2.++ --符号在前和在后的区别:
1.单独使用时没有区别
2.++ -- 和其他操作同时使用
符号在前:先进行++ -- 运算,然后再进行其他操作。
符号在后:先进行其他操作,在进行++ --运算
2.赋值运算符
= += -= *= /+ %=
将 赋值符号 后的 结果给 赋值符号前边的变量。
注意:
赋值符号前 必须是一个变量(如果不是就报错)。
四、js表达式如何调用变量?
(function f1() {
var num = 10;
window.num = num;
})();
console.log(num);
五、js正则表达式定义?
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
一、在js中定义一个正则表达式
[ ]中括号中可以写多个任意字符,代表只匹配一个字符
[abc]:代表可以匹配a,b,c三个字母中的任意一个字母
1./....../ 以 / 开头,以 / 结尾,中间的内容为正则表达式
let regex=/[abc]/;
2.new RegExp 对象
let regex = new RegExp("[abc]");//此行的代码可以将一个字符串转换为正则表达式
let regex = new RegExp(/[abc]/);
二、正则表达式中的两个方法
test() :返回一个 boolean值,代表是否匹配。
let s = "abcde";
console.log(/[abc]/.test(s)) ;//true
exec():返回一个数组,数组中存放正则表达式匹配的元素。
console.log(/[abc]/.exec(s))
//["a",index:0.input:"abcde"];
//a:匹配到的字符
//index:匹配到的字符的索引
//input:匹配的字符串
三、正则表达式在js中的作用
1.正则表达式时专门用来处理字符串的
2.正则表达式可以从字符串中 查找 需要的数据
3.正则表达式可以从字符串中 获取 需要的数据
4.正则表达式可以从字符串中 替换 需要的数据
[abc]:代表可以匹配a,b,c三个字母中的任意一个字母
[0-9]:代表匹配任意一个数字
[a-z]:代表可以匹配小写字母中的任意一个
[A-Z]:代表可以匹配大写字母中的任意一个
[a-zA-Z]:代表匹配所有的字母
[^]:如果中括号中以^开头,代表 非
[^0-9]:代表匹配非数字的任意一个字符
[^a-z]:代表可以匹配非小写字母中的任意一个
[^A-Z]:代表可以匹配非大写字母中的任意一个
[^a-zA-Z]:代表匹配所有的非字母
简写:
\d=>[0-9];
\D=>[^0-9];
\w=>[0-9a-zA-Z_] 匹配字母数字和下划线中的任意一个字符串
\W:[^0-9a-zA-Z_]
\s:匹配空白字符
\S:除了空白符外的所有字符
. 匹配除了换行符之外的所有的任意一个字符
\. 匹配一个点
let X = / /;//定义一个新的正则表达式
X{n } :匹配n个X
X{n, }:至少匹配 n个X
X{n,m}:匹配n到m个X
四、正则表达式
1.贪婪式表达式
let X = / /;//定义一个新的正则表达式
//X* :匹配0 到多个,等价于X{0,}
//X+:至少匹配一个,等价于X{1,}
//X? :匹配最多一个等价于X{0,1}
2.非贪婪式表达式=>在贪婪式表达式后添加一个 ?
let X = / /;//定义一个新的正则表达式
//X*? :匹配0
//X+?:至少匹配一个
//X?? :匹配最多一个
3.限定符
^ : 如果出现在正则表达式的第一个位置 代表以...开头
/^[0-9]/以0-9中任意一数字开头
$ :如果出现在正则表达式的尾部 代表以...结尾
/[0-9]$/以0-9中任意一数字结尾
4.选择
| :或
5.分组
( ... ) 小括号 组从左到右进行查询
6.引用
\num 引用num组的匹配内容,num从1开始
7.命名捕获组
(?<key>\d+) 将d+ 匹配的内容赋值给key可以通过exec().groups获取key的值
8.非捕获组匹配
regex = /famil(?:y|ies)/
var s11 = "familysss" ;
console.log(regex.exec(s11))
let version = "Wind1ow 98";
// regex = /Window\s+(\w+)/
regex = /(?<!Window)\s+(\w+)/
console.log(regex.exec(version))
famil(?:y|ies) 此时的小括号不能算作分组
9.断言
?= 正向确定断言
?! 正向否定断言
?<= 反向确定断言
?<! 反向否定断言
10.判断一个字符串中是否有手机号
/1[3-9]\d{9}/
//此为包含 字符串中有符合该条件则返回true
/^1[3-9]\d{9}$/
//此为一个以 1 开头 十一位的数字字符串
六、js正则表达式怎么定义?
javascript正则表达式的2种定义方法:一种是直接调用RegExp(),第二种是直接用字面量来定义,即var re = /正则规则/。
js正则表达式的2种定义方法本质都是调用RegExp()方法在调用同一段正则代码的时候,ECMAScript3和ECMAScript5中表现完全不一样function reg(){ var re = /\sjavascript/; return re; }分别在ECMAScript3和ECMAScript5中调用reg()方法多次在ECMAScript3中,调用的是同一个RegExp对象,在ECMAScript5中,调用的是不同的RegExp对象 因为在EXCMAScript5中每执行一次,就生成一个新的RegExp对象所以在ECMAScript3中会造成程序的隐患,因为只要在一个地方对这个对象进行修改的话,所有调用到这个对象的地方都会变化。
七、正则表达式属于js吗?
答案是不属于。
因为正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式,可以运用在js里面,也可以运用在各种后端语言中。
八、js字符串校验,正则表达式?
代码示例:
function testNum(str){
var reg = new RegExp("^[^0-9]*$");//从头到尾都不是数字
if(reg.test(str)){
alert("没有数字!");
}else{//有数字
var reg = new RegExp("^[0-9]*$");//从头到尾都是数字
if(reg.test(str)){ //从头到尾都是数字
alert("全是数字");
}else{ //有数字但是不全是
alert("有但是不全是数字");
}
};
};
testNum("234");
testNum("asd");
testNum("2e34");
九、js正则表达式之match函数讲解?
match就是这样匹配的,第一个匹配到的内容,然后匹配到的子表达式,然后第二个匹配到的子表达式。。。
十、js实现最简分数表达式求和?
要实现分数表达式的求和,可以采用以下思路:
1. 将分数表达式转化为分数数组,例如:1/2 + 3/4 = [[1, 2], [3, 4]]
2. 将分母不为1的分数化简为最简分数,例如:[[1, 2], [3, 4]] => [[1, 2], [1, 2]]
3. 将分子为1的分数直接转化为整数,例如:[[1, 3], [1, 2]] => [1, 1, 2]
4. 对整数数组进行求和运算得到最终结果。
实现代码如下: js
function sumFraction(expr) {
let nums = [];
let denoms = [];
// 1. 转化为分数数组
expr.split(' + ').forEach(ele => {
let [num, denom] = ele.split('/');
nums.push(num);
denoms.push(denom);
});
// 2. 化简分数
let simiplified = [];
nums.forEach((n, i) => {
let gcd = gcd(n, denoms[i]);
simiplified.push([n / gcd, denoms[i] / gcd]);
})
// 3. 整数化
let integers = [];
simiplified.forEach(x => {
if (x[1] === 1) integers.push(x[0]);
else integers.push(x);
});
// 4. 求和
let sum = 0;
integers.forEach(x => {
if (typeof x === 'number') sum += x;
else sum += x[0] / x[1];
});
return sum;
}
function gcd(a, b) {
if (b == 0) return a;
return gcd(b, a % b);
}
sumFraction('1/2 + 3/4 + 5/6 + 1/3');
// 2.0833333333333335
该算法先将分数表达式转化为分数数组,然后化简最简分数与整数化,最终对整数和最简分数进行求和,得出结果。gcd()函数用于求两个数的最大公约数,用于分数化简。
- 相关评论
- 我要评论
-