JavaScript on NodeJS & Chrome, 51 bytes
// OLD: t=n=>{i=Number.isSafeInteger;return i(n)&&i(n**.5)}
i=Number.isSafeInteger;t=n=>i(n)&&i(n**.5)
// TestCases:
let l=console.log;l(`t(1): ${t(1)}; t(64): ${t(64)}; t(88): ${t(88)};`)
JavaScript on NodeJS & Chrome, 51 bytes
t=n=>{i=Number.isSafeInteger;return i(n)&&i(n**.5)}
// TestCases:
let l=console.log;l(`t(1): ${t(1)}; t(64): ${t(64)}; t(88): ${t(88)};`)
JavaScript on NodeJS & Chrome, 51 bytes
// OLD: t=n=>{i=Number.isSafeInteger;return i(n)&&i(n**.5)}
i=Number.isSafeInteger;t=n=>i(n)&&i(n**.5)
// TestCases:
let l=console.log;l(`t(1): ${t(1)}; t(64): ${t(64)}; t(88): ${t(88)};`)
JavaScript on NodeJS & Chrome, 51 bytes
t=n=>{i=Number.isSafeInteger;return i(n)&&i(n**.5)}
// TestCases:
let l=console.log;l(`t(1): ${t(1)}; t(64): ${t(64)}; t(88): ${t(88)};`)