前言
作为一枚测开工程师,需要的技能是全栈的,项目中,经常需要切换语言进行开发,语言用多了,难免会经常用混淆,故趁有空整理下这系列笔记“Python同Java同Js语言语法区别‘,希望对大家有用。
Python
在python中,False,0,’’,[],{},()都为假,因此可以直接进行逻辑运算。
#!/usr/bin/python
list1=[]
str1=""
num=0
dict1={}
tuple1=()
blue1=False
none1=None
if list1 or str1 or num or dict1 or tuple1 or blue1 or none1:
print("有")
else:
print("空值")
需要注意的是:数字0也为假
Java
java 中没有python那么简洁,写起来比较长。
字符串
java 中为了防止空指针异常,一般都要加上null的判断,如示例1。如果用 equals(String) 或 length(),则null判断则需要写在最前面,要不然会报空指针异常,如示例2
易出错写法:示例1
String str1 = "";
if ( str1 == null || str1 == "" ){
System.out.println("空");
}
else{
System.out.println("有值");
}
==判断的是字符的内存地址是否相等。可以判断对象是否相等,此处判断的是字符内容,如果将str1 变为String str1=new String(“”);则结果则不一样了。
不建议写法:示例2
因为null 必须得写在前面,要不然会报空指针异常,新手很忽略,而踩坑!
if ( str1 == null || str1.equals("") ){
System.out.println("空");
}
else{
System.out.println("有值");
}
需要注意的是:如果使用str equals等属性的话,null判断需要放在前面
建议写法:使用StringUtils工具类,比较直观
import org.apache.commons.lang3.StringUtils;
StringUtils.isEmpty(str1)
数组
在python叫列表
同样需要加上null 判断
// List list1 =new ArrayList();
List list1 =null;
// if (list1 ==null || list1.size()==0){
if (list1 ==null || list1.isEmpty()){
System.out.println("空列表");
}else {
System.out.println("有值列表");
}
注意 List list1 =new ArrayList();此时的list1是空数组 [] 。size判断数量、empty判断元素
Map
在python也叫字典
写法与数组一样
// HashMap<String,String> map1 = new HashMap<>();
HashMap<String,String> map1 = null;
if (map1 ==null || map1.isEmpty()){
System.out.println("空map");
}else {
System.out.println("有值map");
}
Js
较为好用的在线调试工具:
https://www.bejson.com/runcode/javascript/
字符串
js中还需要判断null以及undefined,undefined代表的变量没有赋值。
var str1;
// var str1=null;
// var str1="";
if(str1===""||str1===null||str1===undefined){
console.log("空");
}else{
console.log("不为空");
}
数组
// let arr=null;
// let arr = [];
let arr ;
if (arr===null||arr===undefined || arr.length === 0 ){
console.log("数组为空")
}else {
console.log("数组不为空")
}
注意的是,arrnull||arrundefine也要放在前面,要不然会报错。
对象
对应的python中的字典
判断的方法之一JSON.stringify。
// var object1;
// var object1;
var object1 ={};
if(object1===null||object1===undefined||JSON.stringify(object1) == "{}"){
console.log("空");
}else{
console.log("不为空");
}
注意的是:js中判断等于一般建议使用"===“严格等于 。与” == "区别就是三等号等于不进行类型转换,如果类型不一致则返回false